2013-04-14 2 views
0

Я написал запрос, но он показывает город идентификатор в пункте где находится ambigiousCITY_ID в котором положение неоднозначное

SELECT 
    `a`.`name`, 
    `a`.`company`, 
    `a`.`city`, 
    `a`.`country`, 
    `a`.`phone`, 
    `a`.`type_of_enquiry`, 
    `b`.`enquiry_id`, 
    `a`.`hearaboutus`, 
    `a`.`email`, 
    `a`.`comments`, 
    `a`.`address`, 
    `c`.`id`, 
    `c`.`city_id` 
FROM (`sobha_enquiry` a) 
    LEFT JOIN `sobha_enquiryzone` b 
    ON `b`.`enquiry_id` = `a`.`id` 
    LEFT JOIN `sobha_admin` c 
    ON `c`.`city_id` = `b`.`city_id` 
WHERE `city_id` = '2' 
GROUP BY `a`.`id` 
ORDER BY `id` desc, `a`.`id` DESC 

Pls помочь мне !!!!!!!!!!

ответ

3
SELECT 
    `a`.`name`, 
    `a`.`company`, 
    `a`.`city`, 
    `a`.`country`, 
    `a`.`phone`, 
    `a`.`type_of_enquiry`, 
    `b`.`enquiry_id`, 
    `a`.`hearaboutus`, 
    `a`.`email`, 
    `a`.`comments`, 
    `a`.`address`, 
    `c`.`id`, 
    `c`.`city_id` 
FROM (`sobha_enquiry` a) 
    LEFT JOIN `sobha_enquiryzone` b 
    ON `b`.`enquiry_id` = `a`.`id` 
    LEFT JOIN `sobha_admin` c 
    ON `c`.`city_id` = `b`.`city_id` 
WHERE `a`.`city_id` = '2' 
GROUP BY `a`.`id` 
ORDER BY `c`.`id` desc, `a`.`id` DESC 

В вас где положение вы должны предоставить либо б или потому, что используют псевдонимы и столбцы CITY_ID существует и в таблице, которая сбивает с толку MySQL

+0

Возможно, вы имеете в виду 'b или c' не' a или c'. –

+1

благодарит @JW за уведомления меня –

+0

спасибо всем, что я получил результат –

2

проблема заключается в предложении WHERE, необходимо указать в какой таблице будет искать city_id, обе они содержат одно и то же имя столбца. Это может быть либо от sobha_enquiryzone, либо от sobha_admin.

SELECT a.NAME, 
     a.company, 
     a.city, 
     a.country, 
     a.phone, 
     a.type_of_enquiry, 
     b.enquiry_id, 
     a.hearaboutus, 
     a.email, 
     a.comments, 
     a.address, 
     c.id, 
     c.city_id 
FROM sobha_enquiry a 
     LEFT JOIN sobha_enquiryzone b 
       ON b.enquiry_id = a.id 
     LEFT JOIN sobha_admin c 
       ON c.city_id = b.city_id 
WHERE b.city_id = '2' -- or c.city_id = '2' (both will yield the same result) 
GROUP BY a.id 
ORDER BY id DESC, a.id DESC 
Смежные вопросы