2017-03-09 43 views
1

如果我有2表,这是 enter image description here 我如何获得的查找SQL的关系匹配

enter image description here

我知道相结合的名称使用CONCAT_WS功能的结果,但我不我不知道如何在我的输出中交换诸如“妻子”和“丈夫”这样的行。

回答

1

你应该加入客户表中的两个时间使用的表名别名

select 
     concat(c1.client_firstname, ' ' , c1.client_lastname) as A_Name 
     , r.rel_client1_state as A_State 
     , concat(c2.client_firstname, ' ' , c2.client_lastname) as B_Name 
     , r.rel_client2_state as B_State 
from relationships as r 
inner join client as c1 on r.rel_client1_id = c1.client_id 
inner join clinet as c2 on r.rel_client2_id = c2.client_id 
+1

所以,这意味着我可以加入表超过2时间(行各相关部分的)?我虽然只能达到1。 – Beginner

+0

您可以随时加入表格......只需使用适当的别名,并使用右列进行连接 – scaisEdge

+0

好吧,我明白了。谢谢。^^ – Beginner

1
SELECT CONCAT_WS(' ', c1.client_firstname, c1.client_lastname) as c1name, 
r.rel_client1_state, CONCAT_WS(' ', c2.client_firstname, c2.client_lastname) as c2name, 
r.rel_client2_state FROM client c1 
JOIN relationship r ON c1.client_id = r.rel_client1_id 
JOIN client c2 ON c2.client_id = r.rel_client2_id WHERE 1 
+1

感谢您的帮助。^^ – Beginner