2014-10-11 252 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