1
我在2周前發佈了一個關於SQL表之間'一對多'關係的問題。現在我有一個不同的場景。基本上,有兩個表 - coffee_users和coffee_product_registrations。後者通過'uid'列連接到coffee_users表。所以基本上coffee_users.uid = coffee_product_registrations.uid在mysql中使用JOIN和子查詢
單個用戶可以註冊多個產品。
我想要做的是顯示一些產品信息(來自coffee_product_registrations)以及一些用戶信息(來自coffee_users),但只檢索那些有多個產品註冊的行。
所以爲了簡化,這裏有我需要採取的步驟:
- 加入兩個表
- 有多個產品註冊
- 顯示所有的產品與他們的名字和東西 一起選擇用戶
我現在的SQL查詢看起來是這樣的:
SELECT c.uid, c.name, cpr.model
FROM coffee_users c
JOIN coffee_product_registrations cpr on c.uid = cpr.uid
GROUP BY c.uid
HAVING COUNT(cpr.uid) > 1
這加入'uid'列上的兩個表,但每個用戶只顯示1行。它只選擇有多個產品註冊的用戶。
現在我需要取這些ID並根據它們從coffee_product_registrations中選擇所有產品。
我無法弄清楚如何把它放在一個查詢中。
返回一個空的結果。那麼我應該有2個內部聯接嗎?我可以沒有嗎? – Bravi
好吧,我現在要做。謝謝 – Bravi
http://sqlfiddle.com/#!2/59078是sqlfiddle。我創建了2個用戶名 - user1和user2。 user1在coffee_product_registrations下注冊了2個產品,user2只有1個。因此,查詢應選擇user1的所有產品,並顯示除user1的電子郵件和ID之外的兩個產品。 – Bravi