2014-10-07 48 views
0

我有以下語法表:MySQL的重名要返回

| ID | institution_course1_id | institution_course2_id | 

其中application1_id和同桌application2_id引用。我需要得到兩者的值(換句話說,我想檢索每個應用程序的名稱)

我試圖加入表格,但我仍然只在結果中收到1個名稱。這裏是我的SQL我使用:

SELECT * FROM `client_applications` 
LEFT JOIN `institution_courses` `name1` 
    ON `client_applications`.`institution_course1_id`=`name1`.`id` 
LEFT JOIN `institution_courses` `name2` 
    ON `client_applications`.`institution_course2_id`=`name2`.`id` 
WHERE `client_applications`.`client_id`=? 

有沒有辦法對我來說,在我的返回結果從client_applications所有行,然後有2個獨立的添加鍵爲「NAME1」和「NAME2」基於以上?

+0

請提供樣本數據和預期的結果。 – Kleskowy 2014-10-07 11:05:43

+0

嗨!你能分享你試圖加入的兩張表的模式嗎? – 5122014009 2014-10-07 11:08:01

回答

0

我猜你的問題是應用程序正在讀取結果。嘗試把不同的別名(「列名」)的兩個名字:

SELECT ca.*, name1.name as name1, name2.name as name2 
FROM `client_applications` ca LEFT JOIN 
    `institution_courses` `name1` 
     ON ca.`institution_course1_id` = `name1`.`id` LEFT JOIN 
     `institution_courses` `name2` 
     ON ca.`institution_course2_id` = `name2`.`id` 
WHERE ca.`client_id` = ?; 

否則您的查詢看起來不錯(雖然我增加了一個別名第一臺爲好)。

0

嘗試如下:

SELECT ca.*, (select name1.name from name1 where ca.`institution_course1_id` = `name1`.`id`) as name1,(select name1.name from name1 where ca.`institution_course2_id` = `name1`.`id`) as name2 
FROM `client_applications` ca 
WHERE ca.`client_id` = ?;