我有这两个问题:
第一个:
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)。我的第二个查询只是查看在第一个查询中返回的每个用户总共有多少项。
我想在第一个查询中计算一下。
答案 0 :(得分:0)
您可以复制第二个查询并将其粘贴到第一个查询的选择列表中。
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
我觉得像母亲一样对她的孩子说吃你的蔬菜,但是...... 写出你的联接而不引用你的数字。
答案 1 :(得分:-1)
我认为这只是添加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子句必须根据每个连接行的相同列完成。