SQL:如何透過比較行和列來查詢具有複合鍵的聯結表
P粉358281574
P粉358281574 2023-09-13 23:28:58
0
1
372

我有一個Mysql 連接表user_connections,它將users表與以下進行映射:user_fromuser_to>,兩者都是users表中的外鍵。

我的邏輯是,如果id1id2發送請求,在這種情況下,這將是一個待處理的請求。只有當id2接受請求時,該請求才會被視為已批准,該請求將在表格(紅色框)中給出上面的 (id1, id2) 和 (id2, id1) 模式。

所以我的問題是如何查詢user_connections表,以便我可以根據id1(藍色框)取得所有待處理的請求

我不知道如何才能做到這一點。因此,任何幫助都會得到幫助。 預先感謝您。

P粉358281574
P粉358281574

全部回覆 (1)
P粉287345251

如果您正在尋找user_connections表格定義的所有待處理要求,那麼您需要對該表與其自身進行左外連接,如下所示:

架構 (MySQL v5.7)

create table user_connections ( user_from int, user_to int, primary key(user_from, user_to) ); insert into user_connections(user_from, user_to) values(1, 2); insert into user_connections(user_from, user_to) values(2, 1); insert into user_connections(user_from, user_to) values(67, 1); insert into user_connections(user_from, user_to) values(68, 1); insert into user_connections(user_from, user_to) values(69, 1); insert into user_connections(user_from, user_to) values(70, 1);

查詢#1

#
select uc1.user_from, uc1.user_to from user_connections uc1 left join user_connections uc2 on uc2.user_from = uc1.user_to and uc2.user_to = uc1.user_from where uc2.user_from is null;
user_from user_to
67 1
68 1
69 1
70 1
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!