将两个结果挤压成一行

时间:2013-01-19 06:51:47

标签: mysql

我正在寻找一种方法将两个结果行连接在一起。

我有两张桌子:

设置表:

id | pop_setting1_id | pop_setting2_id

用户表:

user_id | setting_id
第一个表格中的

pop_setting1_idpop_setting2_id指向第二个表格中的setting_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 个答案:

答案 0 :(得分: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=?