David
David

Reputation: 3105

SQL syntax error JOIN three tables

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

Answers (3)

Trinimon
Trinimon

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

Gordon Linoff
Gordon Linoff

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

jdweng
jdweng

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

Related Questions