在sql中找到关系匹配

时间:2017-03-09 10:33:03

标签: mysql

如果我有2张桌子,那是 enter image description here 我如何得到

的结果

enter image description here

我知道结合名称使用的是CONCAT_WS功能,但我不明白如何更换该行,例如"妻子"和丈夫"在我的输出上。

2 个答案:

答案 0 :(得分:1)

您应该使用tablename别名

两次加入客户端表(行中每个相关部分的表)
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 :(得分: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