如何使用两个WHERE条件从两个表中进行选择?

时间:2019-10-11 10:02:15

标签: mysql sql

我有一个带有推荐系统的应用程序,用户可以在其中使用他们的user_id来推荐另一个用户。所有用户都在同一张桌子上。引荐来源表格存储引荐来源网址和引荐来源网址的user_id

用户表: enter image description here

引荐表格: enter image description here

我想使用在推荐表中填充的他们的user_id从用户表中查询两个用户(推荐人和被推荐人)的名字。

预期结果: enter image description here

3 个答案:

答案 0 :(得分:0)

我的方法是两次加入User_table-

SELECT U1.name referrers_name, U2.name referred_name
FROM Referrals R
JOIN Users U1 ON R.referrer = U1.user_id
JOIN Users U2 ON R.referrd = U1.user_id

答案 1 :(得分:0)

select t2.name as  referrer_name,t3.name as  referred_name
from REFERRALS_TABLE t1
left join USER_TABLE t2 ON t1.referrer=t2.user_id
left join USER_TABLE t3 ON t1.referred=t3.user_id

答案 2 :(得分:0)

如果获得两个表数据,并且在多个Clouse处使用,则使用sql UNION。

SELECT * FROM oauth_clients WHERE user_id=2
UNION
SELECT * FROM photos where gallery_id=12