[英]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.