簡體   English   中英

MySQL子查詢本身返回所有記錄

[英]MySQL subquery on itself returns all records

以下查詢返回所有結果,但根據我的理解,應返回與子查詢相同的ID。 有人可以解釋為什么返回所有ID的子查詢(當單獨運行時)返回所有記錄

select mya.id from mytable mya WHERE mya.id IN (
   SELECT myb.id 
   FROM mytable myb
   GROUP BY myb.mysecondcolumn
)

作為單獨查詢運行時的子查詢將返回1,5,10,15,但是當我在上面運行此查詢時它返回1,2,3,4,5,...

謝謝!

您的查詢格式錯誤。 您需要子查詢中的聚合函數。 也許:

select mya.id
from mytable mya 
where mya.id in (SELECT MIN(myb.id)
                 FROM mytable myb
                 GROUP BY myb.mysecondcolumn
                );

這並不能解釋您的實際問題。 我的猜測是, 查詢返回所有的ID,而只是以不同的順序。 您可以通過查看以下結果來檢查是否是這種情況:

SELECT MIN(myb.id)
FROM mytable myb
GROUP BY myb.mysecondcolumn
ORDER BY MIN(myb.id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM