MySQL计数,使用一个表与另一个表的结果

时间:2015-01-11 18:31:56

标签: mysql sql select

我在这里要求实施这个问题 MYSQL count of count?

我的问题是关联我从一个表中取出结果的结果,使用它们来查询同一个数据库的另一个表 (抱歉,我不是强大的xySQL)

我有一个名为ticketdb的MySQL数据库,我需要根据table2(poststb)上的计数从table1(tickettb)中提取数据

方案: 更准确地说,门票中的帖子有回复而且我需要离开poststb表,所有门票只有2个帖子。 从该结果,我需要从tickettb表中提取所有相应的票证。 正如您可能猜到的那样,poststb只包含故障单标识,该帖子的日期,主题和消息,其他所有用户信息都在故障单中。

到目前为止,我成功了(感谢上面的帖子)从帖子中回复两篇帖子,但是因为他们在游戏中输入别名,我就被卡住了。

代码是这个

SELECT PostsOfTheGivenTicket, TicketIdentification 
FROM (SELECT posttb.ticket_id, COUNT(posttb.ticket_id) AS 
             PostsOfTheGivenTicket, posttb.ticket_id as TicketIdentification 
      FROM posttb GROUP BY posttb.ticket_id 
      HAVING PostsOfTheGivenTicket= 2) AS TemporaryTable

(也许这不是我目标的最佳选择,所以感谢您的任何确认)

无论如何,经过测试,它只返回所有83张票,只有2条消息

上述查询的结果如下:

 PostsOfTheGivenTicket    TicketIdentification 
 2                        1234
 2                        1451
 2                        1526

看起来它被分配给临时/别名表TemporaryTable(是吗?如何重用它?)

在tickettb表中,我有一个列,其名称已设置为IdTicket,它存储相同的值

IdTicket  UserName UserPhone UserEmail etc etc
1234
....
1451
....
1526

我的目标是拉出(最后在网络服务器上)与匹配的门票相关的所有tickettb详细信息,换句话说

SELECT from tickettb every ticket with IdTicket equal to TicketIdentification

是否可以将上述查询嵌套到实现目标的另一个查询中?

在最终目标的同时,将转而使用2条消息选择并删除部分门票,例如:只有超过10天的人。

1 个答案:

答案 0 :(得分:1)

SELECT * FROM ticketb WHERE IdTicket IN
(
      SELECT ticket_id
      FROM posttb 
      GROUP BY ticket_id 
      HAVING COUNT(ticket_id) = 2
)