2013-04-14 35 views
0

我已經寫了查詢,但它顯示在where子句中城市的id是ambigiousCity_id在where子句中是模糊的

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 

請幫助我!!!!!!!!!!

回答

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 

在你,你應提供條​​款B或C,因爲使用的別名和city_id存在於兩個表中的列這是混亂的MySQL

+0

也許你的意思是'b或c''不是'a或c'。 –

+1

感謝@JW通知我 –

+0

感謝大家,我得到了結果 –

2

問題出在WHERE子句中,你需要指定什麼表將被搜索city_id sice他們都包含相同的列名稱。它可以是sobha_enquiryzonesobha_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