了解mysql如何加入工作

时间:2017-07-23 07:11:54

标签: php mysql

我在使用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

现在正在输出正确的数据。谢谢大家

1 个答案:

答案 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 

试试这个