2015-01-18 3 views
0

Я получаю Код ошибки: 1054. Неизвестный столбец 'vehicle_details.batch_id' в 'on clause' errror при запуске следующего запроса MySQL ,Код ошибки: 1054. Неизвестная колонка 'vehicle_details.batch_id' in 'on clause'

Может ли кто-нибудь помочь?

Спасибо,

Джон

SELECT 
    supplier, 
    vehicle_details.status, 
    vehicle_details.batch_id, 
    veh_id, 
    fund_type, 
    suppliers.supplier_name, 
    reg_no, 
    car_make.car_make, 
    car_model, 
    creation_date, 
    stock_plan, 
    money_received, 
    hpi_registered, 
    invoice_checked, 
    details_checked, 
    confirmation_received, 
    log_mot_check 
FROM 
    vehicle_details, 
    suppliers, 
    car_make 
LEFT JOIN batch 
ON vehicle_details.batch_id = batch.batch_id 
WHERE 
    vehicle_details.supplier = suppliers.supplier_id 
     AND vehicle_details.car_make = car_make.car_id 
     AND vehicle_details.status like 's' 
     AND vehicle_details.batch_id like '%' 
     AND veh_id like '%' 
     AND fund_type like '%' 
     AND supplier like '%' 
     AND reg_no like '%' 
     AND car_id like '%' 
     AND car_model like '%' 
     AND creation_date like '%' 
     AND stock_plan like '%' 
     AND money_received like '%' 
ORDER BY vehicle_details.batch_id DESC 
+0

Не смешивать неявный и явный синтаксис соединения –

+0

@juergend Hi Juergen, я новичок в SQL и не знаю, что вы имеете в виду. –

ответ

2

Используйте только Явный синтаксис

SELECT 
    supplier, 
    vehicle_details.status, 
    vehicle_details.batch_id, 
    veh_id, 
    fund_type, 
    suppliers.supplier_name, 
    reg_no, 
    car_make.car_make, 
    car_model, 
    creation_date, 
    stock_plan, 
    money_received, 
    hpi_registered, 
    invoice_checked, 
    details_checked, 
    confirmation_received, 
    log_mot_check 
FROM 
    vehicle_details 
INNER JOIN suppliers ON vehicle_details.supplier = suppliers.supplier_id 
INNER JOIN car_make ON vehicle_details.car_make = car_make.car_id 
LEFT JOIN batch ON vehicle_details.batch_id = batch.batch_id 
WHERE vehicle_details.status like 's' 
     AND (vehicle_details.batch_id is null or vehicle_details.batch_id like '%') 
     AND veh_id like '%' 
     AND fund_type like '%' 
     AND supplier like '%' 
     AND reg_no like '%' 
     AND car_id like '%' 
     AND car_model like '%' 
     AND creation_date like '%' 
     AND stock_plan like '%' 
     AND money_received like '%' 
ORDER BY vehicle_details.batch_id DESC 

Вы присоединяетесь здесь неявного

FROM 
vehicle_details, 
suppliers, 
car_make 

и там явно

LEFT JOIN batch ON vehicle_details.batch_id = batch.batch_id 
+0

Проблема заключается в том, что записи не возвращаются, если они имеют значение NULL в файле vehicle_details.batch_id. Любые идеи о том, как я могу обойти это? –

+0

Я обновил предложение 'where' для этого случая –

+0

Блестящий! Спасибо за вашу помощь. –

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