2016-12-12 9 views
0

Я знаю, что я видел пару других вопросов об этой ошибке, но я новичок в sql JOIN, так что вы могли бы объяснить, я делаю неправильно.# 1054 - Неизвестная колонка 'Klanten.Klantnummer' в 'on clause'

Вот мой запрос

SELECT Klanten.Klantnummer,`Barcode`, `Naam`, `BetaalStatus`, `ScanStatus`, `TijdScan`, `Prijs` 
FROM `Klanten`, `kaart` 
LEFT JOIN (`Intro`) 
ON (Intro.KlantNummer = Klanten.Klantnummer) 
WHERE kaart.KlantNummer = Klanten.Klantnummer 

Это ошибка я получаю, как вы уже видели в названии

1054 - Неизвестный столбца «Klanten.Klantnummer» в «на пункте»

И имена db верны

+2

хорошо, имеет ли таблица «Klanten» колонку «Klantnummer»? – Lamak

+0

Замечание, но вы действительно не должны смешивать неявные и явные стили 'JOIN'. На самом деле, вы действительно даже не должны иметь '' 'в' FROM' вообще. Этот стиль стал устаревшим ** почти 25 лет назад. ** – Siyual

ответ

2

Простой правило: Никогда запятыми в разделе FROM. Всегда использовать надлежащим образом, явно JOIN синтаксис. Если вы сделали это, вы бы не ошибка:

SELECT Klanten.Klantnummer,`Barcode`, `Naam`, `BetaalStatus`, `ScanStatus`, `TijdScan`, `Prijs` 
FROM `Klanten` JOIN 
    `kaart` 
    ON kaart.KlantNummer = Klanten.Klantnummer LEFT JOIN 
    `Intro` 
    ON Intro.KlantNummer = Klanten.Klantnummer ; 

Проблема заключается в том, что приоритет , и JOIN различны. Следовательно, таблица перед запятой не известна в предложении ON.