Tengo una consulta SQL simple con un dónde y una unión. Traté de ejecutar este comando: SELECT * FROM gym_service WHERE gym_id = ? JOIN services ON service_id = id. Los ? es por el valor en el código:

persistent.transaction(tx => {
            tx.executeSql('SELECT * FROM gym_service WHERE gym_id = ? JOIN services ON service_id = id', [gym.id],
            (t, s) => {
                console.log(s)
            }, (t, e) => {
                console.log(e)
            })
        })

Sin embargo, siempre recibo este extraño error: Error code 1: near "JOIN": syntax error

Creo que todo se hace correctamente, ¿cuál es el problema con mi código?

-2
user11936976 16 feb. 2020 a las 22:30

2 respuestas

La mejor respuesta

Debe especificar las combinaciones en la cláusula from

SELECT *
FROM 
    gym_service g
    INNER JOIN services s ON g.service_id = s.id
WHERE
    g.gym_id = ?

Consulte: Uniones SQL (w3schools.com)

1
Olivier Jacot-Descombes 16 feb. 2020 a las 19:37

La cláusula WHERE debe usarse después de unir las tablas.

Para unir tablas, use INNER JOIN, LEFT JOIN, RIGHT OUTER JOIN según sus necesidades.

La consulta a continuación cumplirá con el requisito anterior.

SELECT * FROM gym_service gs INNER JOIN services s ON gs.service_id = s.id WHERE gs.gym_id = ?

0
Tharuka 17 feb. 2020 a las 06:07