簡體   English   中英

SQL Join兩個查詢,同一表

[英]SQL Join two querys, same table

我有這張桌子:

在此處輸入圖片說明

無論如何,我都想選擇最后兩個條目(兩個ID最大),並且將兩個查詢具有最大“力量”的4個條目連接在一起。

因此,在此示例中,我將只有4個結果,id 9和8、3和4。

我試過了:

$query = "SELECT * FROM table 
          ORDER BY power DESC LIMIT 4 
          INNER JOIN SELECT * FROM table 
                     ORDER BY id DESC LIMIT 2 ";

我收到“無效查詢”錯誤。 怎么了

( SELECT * FROM table ORDER BY power DESC LIMIT 4 )
UNION
( SELECT * FROM table ORDER BY id DESC LIMIT 2 )

JOIN不是您想要的,但是UNION將兩次返回一些行(當匹配兩個查詢時)。 我手頭沒有MySQL,但請嘗試使用Subqueries:

SELECT * FROM table 
WHERE id IN (SELECT id FROM table ORDER BY id DESC LIMIT 2)
OR id IN (SELECT id FROM table ORDER BY power DESC LIMIT 4)

您正在尋找的是UNION,而不是INNER JOIN

例:

SELECT column_name(s) FROM table_name1  
UNION  
SELECT column_name(s) FROM table_name2

聯合將兩個選擇語句的結果附加在一起。 我建議閱讀Jeff Atwood關於SQL連接的文章,以更好地了解各種連接的作用。 http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

暫無
暫無

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

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