Reputation: 3105
I'm trying to join three tables. But I get this error
Syntax error(missing operator) in query expression STUDENTAI.mėgstamiausia_laida = TV_LAIDOS.id
LEFT JOIN MIESTAI
ON STUDENTAI.kilme = MIESTAI.koda'.
Here is my code
SELECT MIESTAI.pavadinimas, TV_LAIDOS.pavadinimas
FROM STUDENTAI
LEFT JOIN TV_LAIDOS
ON STUDENTAI.mėgstamiausia_laida = TV_LAIDOS.id
LEFT JOIN MIESTAI
ON STUDENTAI.kilme = MIESTAI.kodas
WHERE STUDENTAI.ugis > 190;
So what's wrong? Why I get this error?
Upvotes: 1
Views: 95
Reputation: 13957
This column name looks special:
STUDENTAI.mėgstamiausia_laida
It ran on my MySQL if I enclosed it in ``
, i.e.
SELECT MIESTAI.pavadinimas, TV_LAIDOS.pavadinimas
FROM STUDENTAI
LEFT JOIN TV_LAIDOS
ON STUDENTAI.`mėgstamiausia_laida` = TV_LAIDOS.id
LEFT JOIN MIESTAI
ON STUDENTAI.kilme = MIESTAI.kodas
WHERE STUDENTAI.ugis > 190;
Upvotes: 1
Reputation: 1269693
This query:
SELECT MIESTAI.pavadinimas, TV_LAIDOS.pavadinimas
FROM STUDENTAI LEFT JOIN
TV_LAIDOS
ON STUDENTAI.mėgstamiausia_laida = TV_LAIDOS.id LEFT JOIN
MIESTAI
ON STUDENTAI.kilme = MIESTAI.kodas
WHERE STUDENTAI.ugis > 190;
Looks structurally correct for any database . . . except MS Access. In that system, you need parentheses around the joins:
SELECT MIESTAI.pavadinimas, TV_LAIDOS.pavadinimas
FROM (STUDENTAI LEFT JOIN
TV_LAIDOS
ON STUDENTAI.mėgstamiausia_laida = TV_LAIDOS.id
) LEFT JOIN
MIESTAI
ON STUDENTAI.kilme = MIESTAI.kodas
WHERE STUDENTAI.ugis > 190;
Note that this assumes that the tables and columns all exist and accented characters are allowed in column names and so on.
Upvotes: 3
Reputation: 34421
Your syntax is correct. Either the table MIESTAI doesn't exist, or the field names STIDENTAI.kilme, or MIESTAI.kadas doesn't exist.
Do you really want to join kilme and kadas?
Upvotes: 1