2015-06-17 4 views
0

Я пытаюсь отобразить имя и фамилию водителя, но когда я запускаю этот запрос столбцы названия просто возвращают тест, а не фактические имена из таблицы сотрудниковНевозможно отобразить столбец из другой таблицы

SELECT checklistitem.*, 
    m1.Company_ID AS Company_ID, 
    m1.ChecklistID As ChecklistID, 
    e.FirstName As FirstName, 
    e.LastName As LastName 
FROM checklistitem 
    LEFT JOIN employee e ON e.CompanyID 
    LEFT JOIN maintenance m1 ON m1.CheckListID 
    LEFT JOIN Vehicle v ON m1.LinkedID = v.ID 
    LEFT JOIN Trailer t ON m1.LinkedID = t.ID 
WHERE m1.Company_ID = 129 

Я подумал, что таблица не связывая правильно найти имена, поэтому я попытался изменить код, чтобы LEFT JOIN employee e ON m1.Company_ID потому как обслуживание и таблица сотрудников компании имеют идентификатор, но я получаю ошибку

Неизвестный столбца «m1. Company_ID 'in' on on '

+0

должно быть условие соединения i.e. 'на a.a1 = b.b1' не просто' на a.a1' – KrazzyNefarious

ответ

1

Ваша проблема с заявлениями LEFT JOIN. У вас есть недопустимый синтаксис в вашем предложении ON.

FROM checklistitem 
LEFT JOIN employee e ON e.CompanyID /*ERROR*/ 
LEFT JOIN maintenance m1 ON m1.CheckListID /*ERROR*/ 

Ваш SQL заявление должно быть table.column = table2.column

Так что я собираюсь выйти на догадку и сказать, что вы должны быть с помощью

FROM checklistitem 
LEFT JOIN employee e ON checklistitem.CompanyID = e.CompanyID 
LEFT JOIN maintenance m1 ON e.CheckListID = m1.CheckListID 

Пожалуйста, обратите внимание: я не знаю, что ваши таблицы настроены как. checklistitem.CompanyID и e.CheckListID был догадкой. Пожалуйста, замените их правильными полями из ваших таблиц.

Также с вашими табличными именами, m1.Company_ID автоматически превращается в Company_ID. Не нужно использовать AS.

Смежные вопросы