我在使用mysql理解JOINS时遇到了一些麻烦。
我有3张桌子。 gold_sended)user_id | sended注册)user_id | gold_swap_id
google_users)oauth_uid | portal_name
现在需要做的是如下。 首先,我需要google_users的所有portal_names,其中oauth_id =与register.user_id相同
接下来我还需要检查register.user_id = gold_sended.user_id
如果来自寄存器的user_id与als gold_sended user_id相同,则显示
门户网站名称。如果没有则不显示任何内容。
我从来没有使用过连接,所以我有点迷失了如何正确地做到这一点。
好了,现在已经解决了。
SELECT
google_users.portal_name,
gold_sended.user_id,
gold_sended.date,
COUNT(gold_sended) as total_runs
FROM
register_gold_swap
LEFT JOIN google_users on register_gold_swap.user_id=google_users.oauth_uid
LEFT JOIN gold_sended on register_gold_swap.user_id=gold_sended.user_id
WHERE
register_gold_swap.gold_swap_id = "1"
AND register_gold_swap.status = "1"
GROUP BY google_users.portal_name
现在正在输出正确的数据。谢谢大家
答案 0 :(得分:1)
select
g.portal_name
from
gold_sended as gs
left join register as r
on g.oauth_id=r.user_id
left join google_users as g
on gs.user_id=g.oauth_id
试试这个