簡體   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