[英]LEFT OUTER JOIN with four table
Here is the table structure 这是表格结构
Column
fb_id
email
name
fname
lname
gender
fb_link
created
Column
id
referred_by
joinee
created
Currently implemented one SQL is (Example 1) 当前实现的一种SQL是(示例1)
SELECT u.fb_id
,fb_link
,name
,r.referred_by
,u.created
FROM users u
LEFT OUTER JOIN referral r
ON u.fb_id=r.joinee
joinee referer
10152250261037651 NULL
10152604594389921 NULL
10154430845000507 1518673071699780
....
....
....
....
547146735389782 NULL
Here is the sql (Example 2) 这是sql(示例2)
SELECT u_joinee.fb_id joinee_fb_id
,u_referer.fb_id referer_fb_id
,u_joinee.NAME joinee_name
,u_referer.NAME referer_name
FROM users u_joinee
,users u_referer
,referral r_j
,referral r_r
WHERE u_referer.fb_id = r_r.referred_by
AND u_joinee.fb_id = r_j.joinee
joinee_fb_id referer_fb_id joinee_name referer_name
10154430845000507 1518673071699780 Saselsdein Bsdasd
What I am looking out for is I need both name in joinee_name
and referer_name
in the output. 我在找出来是我需要两个名称joinee_name
和referer_name
输出。 But I ma not able to use four tables in LEFT OUTER JOIN
clause like i did for example 1 I want to fetch both records which include both non referral and referral joinees Is there any way to expect required result as shown below 但是我无法像我在例1中那样在LEFT OUTER JOIN
子句中使用四个表,我想同时获取包括非引用和引用联接的记录,是否有任何方法可以期望所需的结果,如下所示
joinee_fb_id referer_fb_id joinee_name referer_name
10154430845000507 1518673071699780 Saselsdein Bsdasd
10154430845000347 Null asd NULL
10154430845000567 Null asd asdm NULL
10154230845000567 Null Dsd asdm NULL
10154330845000567 Null sdm NULL
101544553045000567 Null Esd aedm NULL
You can join with the users
table twice by giving it different aliases, just like you do with your implicit inner join. 您可以通过为users
表赋予不同的别名来两次与users
表联接,就像对隐式内部联接一样。
I don't think you need to join with referral
twice. 我认为您不需要两次加入referral
。 A single row in the referral
table links a referrer and a joinee. referral
表中的单行链接了一个推荐人和一个参与者。
SELECT u_joinee.fb_id joinee_fb_id ,u_referer.fb_id referer_fb_id, u_joinee.name joinee_name, u_referer.name referer_name
FROM users AS u_joinee
LEFT JOIN referral AS r ON r.joinee = u_joinee.fb_id
LEFT JOIN users AS u_referer ON r.referred_by = u_referer.fb_id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.