2013-01-19 38 views
0

我正在尋找將兩個結果行連接在一起的方法。在一行中擠壓兩個結果

我有兩個表:

設置表:

id | pop_setting1_id | pop_setting2_id 

用戶表:

user_id | setting_id 

第一表格點pop_setting1_idpop_setting2_idsetting_id在第二表

我想有一個查詢,接受一個參數(ID),並給出了一個單行結果,如:

user_id as user_id_1 | user_id as user_id_2 | setting_id as setting_id1 | setting_id as setting_id2 

從用戶表,其中setting_id分別匹配pop_setting1_id或pop_setting2_id兩行提出。

用戶表中的Setting_id是唯一的,所以肯定它只有兩個結果。我想要的只是重命名這些結果並將它們排成一行。請給我一些提示。

回答

1

試試這個::

Select 

u1.user_id as user_id_1, 
u2.user_id as user_id_2, 
u1.setting_id as setting_id1, 
u2.setting_id as setting_id2, 
from 
`settings` s 
INNER JOIN `user` u1 on (s.pop_setting1_id=u1.setting_id) 
INNER JOIN `user` u2 on (s.pop_setting2_id=u2.setting_id) 

WHERE id=? 
+0

哇。這樣可行!非常感謝! – enrey

+0

你是最受歡迎的... –

+0

我只是將它修改爲LEFT JOIN,所以當用戶表中有一些缺失條目時,它會返回一些內容。 – enrey