2017-07-23 79 views
0

我在理解JOINS與mysql方面有點麻煩。瞭解mysql如何加入工作

我有3個表格。 gold_sended)user_id |發出

註冊)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是的same als gold_sended user_id then display

門戶名稱。如果不是則不顯示。

我從來沒有使用過連接,所以我有點失去了如何適當地做到這一點。

好了,現在解決了。

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

怎麼樣[視覺示例](https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/),還包括樣本查詢? –

+0

@PaulT。這是我甚至不知道如何開始的問題。 –

+0

從任何基本書籍或教程開始 – Strawberry

回答

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 

試試這個

+0

該代碼會生成錯誤。關於條款 –

+0

中的未知colom'g.oauth_uid',你可以給我sql-dump嗎? –

+0

好吧,我現在明白了。我需要爲自己改變一些東西,這樣我才能理解它。現在它是固定的。我只會遇到與我的整體代碼不同的問題。但會問一個新的問題 –