2015-04-18 3 views
1

Я пытаюсь объединить три таблицы. Но я получаю эту ошибкуОшибка синтаксиса SQL JOIN три таблицы

Syntax error(missing operator) in query expression STUDENTAI.mėgstamiausia_laida = TV_LAIDOS.id 
     LEFT JOIN MIESTAI 
       ON STUDENTAI.kilme = MIESTAI.koda'. 

Вот мой код

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; 

Так что же случилось? Почему я получаю эту ошибку?

+0

Какую базу данных вы используете? MySQL или MS Access? –

+1

Я использую MS Access – David

ответ

3

Этот запрос:

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; 

выглядит структурно правильно для любой базы данных. , , кроме MS Access. В этой системе, вам нужны круглые скобки вокруг стыков:

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; 

Обратите внимание, что это предполагает, что таблицы и столбцы, все существуют и акцентированные символы разрешены в именах столбцов и так далее.

1

Ваш синтаксис верен. Либо таблица MIESTAI не существует, либо имена полей STIDENTAI.kilme или MIESTAI.kadas не существуют.

Вы действительно хотите присоединиться к кильме и кадам?

1

Это имя столбца выглядит особенным:

STUDENTAI.mėgstamiausia_laida 

Он работал на моем MySQL, если я заключил его в ``, т.е.

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; 
Смежные вопросы