簡體   English   中英

如何將同一表上的兩個查詢連接在一起?

[英]How can I join together two queries on the same table?

我有一個MySQL表,名為related_post ,看起來像這樣:

+----+--------+--------+
| id | post_1 | post_2 |
+----+--------+--------+
|  1 |     25 |     26 |
|  2 |     25 |     27 |
|  3 |     25 |     28 |
|  4 |     26 |     27 |
|  5 |     26 |     28 |
|  6 |     27 |     28 |
|  … |     …  |     …  |
+----+--------+--------+

我需要檢索給定帖子ID的所有相關帖子。

如果提供“ 27”,則希望它返回一個以“ 25”,“ 26”和“ 28”作為值的列。

現在,我需要將其分為2個查詢:

SELECT post_1 FROM related_post where post_2 = 27;
SELECT post_2 FROM related_post where post_1 = 27;

我想知道是否可以僅執行一個查詢來完成相同的結果。

嘗試UNION

SELECT post_1 AS post FROM related_post where post_2 = 27
UNION
SELECT post_2 FROM related_post where post_1 = 27

UNION還將刪除重復項; 如果您不希望這樣做,請使用UNION ALL

您可以使用CASE語句在一個查詢中執行此操作

SELECT CASE WHEN post_2 = 27 THEN post_1 ELSE post_2 END as post
FROM related_post 
WHERE post_2 = 27 OR post_1 = 27;

暫無
暫無

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

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