繁体   English   中英

我想使用 MySQL 中第二个查询中第一个查询的列将两个查询合二为一

[英]I want to use two queries into one using a column from first query in the second one in MySQL

我有这两个查询:

第一个:

SELECT * FROM item, user WHERE item_def = '289' 
    AND item_quality = '6' AND user.steam_64 = item.steam_64

第二个:

select count(item_id) from item where steam_64 = '".$steam_id64."'"

所以基本上,我的第一个查询是返回匹配项的用户(在本例中为 item = 289)。 我的第二个查询只是查看每个用户在第一个查询中返回的项目总数。

我想在第一个查询中有这个计数。

您可以复制第二个查询并将其粘贴到第一个查询的 select 列表中。

SELECT
  item.*,
  user.*,
  (select count(item_id) from item where steam_64 = '$steamid64') AS `count`
FROM
  item
INNER JOIN
  user
ON
  item.steam_64 = user.steam_64
WHERE
  item.item_quality = 6
AND
  item.item_def = 289

我感觉就像一位母亲对她的孩子说吃你的蔬菜,但是……写下你的加入,不要引用你的数字

我相信这只是添加一个 GROUP BY 子句的问题,因为您对第二个表感兴趣的只是计数。

在主 SELECT 语句中添加额外的 SELECT 语句将导致对返回的每一行执行额外的 SELECT 查询——这可能会显着延长查询时间。

这是我的做法:

SELECT
  count (*) as count_of_items,
  user.*
FROM
  user join item on item.steam_64 = user.steam_64 
WHERE item.item_quality = 6 AND item.item_def = 289
GROUP BY user.steam_64

GROUP BY 子句只需要基于对于每个连接行都相同的列来完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM