SQL присоединяется к путанице

В чем проблема в этом соединении??? Консоль говорит

Error Code: 1051
Unknown table 'invlabtes'


SELECT invlabtes.*, invgatepass.BuiltySupp FROM invlabtes FULL JOIN invgatepass ON(invlabtes.GatePassNO=invgatepass.InwardNo AND invlabtes.GatePassDate=invgatepass.EntryDate AND invlabtes.VehicleNo=invgatepass.VehicleNo) WHERE  invlabtes.Code='*****'

Если я заменю Полное соединение внутренним соединением, запрос возвращает запись.

Все, что я хочу, это получить данные из таблицы invlabtes на основе invlabtes.Code, даже если условие соединения не выполняется и invgatepass не имеет соответствующего builtySupp

2 ответа

Mysql не поддерживает FULL ключевое слово и превращает его в псевдоним таблицы. Таким образом, ваша таблица invlabtes теперь называется FULL.

Если вы хотите всегда возвращать данные из таблицы invlabtes, даже если они не совпадают в invgatepass, попробуйте вместо этого использовать LEFT JOIN, поскольку Mysql не поддерживает полные объединения

SELECT 
invlabtes.*, invgatepass.BuiltySupp 
FROM 
invlabtes LEFT JOIN 
invgatepass 
ON
invlabtes.GatePassNO=invgatepass.InwardNo
AND 
invlabtes.GatePassDate=invgatepass.EntryDate 
AND 
invlabtes.VehicleNo=invgatepass.VehicleNo 
WHERE  
invlabtes.Code='*****'
Другие вопросы по тегам