2014-10-11 250 views
0

我對數據庫相當陌生,我剛剛開始瞭解DML /查詢,我有兩個表,一個名爲customer的客戶端包含客戶數據,另一個名爲requested_games,這包含客戶請求的遊戲,我想寫一個查詢,它將返回請求超過兩場比賽的客戶,到目前爲止,當我運行查詢時,我沒有得到期望的結果,不知道我是否做得對。重複條目數

誰能幫助這個感謝,

下面是查詢

select customers.customer_name, wants_list.requested_game, wants_list.wantslists_id,count(wants_list.customers_ID) 
from customers, wants_list 
where customers.customers_ID = wants_list.customers_id 
and wants_list.wantslists_id = wants_list.wantslists_id 
and wants_list.requested_game > '2'; 

回答

0

只包含一個HAVING子句

GROUP BY customers_ID 
HAVING COUNT(*) > 2 

取決於你如何讓您的數據建立你的一個片段可能需要做

HAVING COUNT(wants_list.requested_game) > 2 

這是我想說明的查詢是如何工作的,也許ITLL幫助您直觀如何執行查詢:)

SELECT是在餐館發出命令....
FROM是您要訂購的菜單從....
JOIN是你想要的菜單的部分包括
WHERE是你想給你的訂單(又名無蘑菇)任何定製....
GROUP BY(以及任何後)之後訂單已經完成,並在您的桌面...

GROUP BY告訴你的服務器,使您的食物種類成羣結伴
ORDER BY是說你想先什麼菜(又名我希望我的主菜甜品,然後再開胃菜)。
HAVING可以用來挑選意外留在盤子上的任何蘑菇....
等..

+0

非常感謝@John Ruddell,您的解決方案很有用,我能夠從查詢中獲得所需的信息。 – bigaone22 2014-10-12 01:18:26

0

我想編寫一個查詢,將返回 已要求兩個以上的遊戲

爲了做到這一點,你需要做的客戶提供以下

  • 首先您需要使用GROUP BY來根據客戶分組遊戲(customers_id
  • 然後,你需要使用HAVING條款得到誰要求兩個以上的遊戲
  • 客戶
  • 然後使這個SUBQUERY,如果你需要像名字對客戶的更多信息
  • 最後你可以使用一個JOIN之間customers和子查詢( temp),以顯示對客戶的更多信息

就像下面的查詢

SELECT customers.customer_id, customers.customer_name, game_count 
FROM (SELECT customer_id, count(wantslists_id) AS game_count 
     FROM wants_list 
     GROUP BY customer_id 
     HAVING count(requested_game) > '2') temp 
JOIN customers ON customers.customer_id = temp.customer_id 
+0

也謝謝,這個看起來有點複雜,但我也會試一試,必須在子查詢上做一些閱讀 – bigaone22 2014-10-12 01:22:03