SQL: So fragen Sie eine verbundene Tabelle mit einem zusammengesetzten Schlüssel ab, indem Sie Zeilen und Spalten vergleichen
P粉358281574
P粉358281574 2023-09-13 23:28:58
0
1
405

Ich habe eine MySQL-Verbindungstabelleuser_connections, die dieusers-Tabelle mit den folgenden Spalten abbildet:user_fromunduser_to>, die beide Fremdschlüssel in derusers-Tabelle sind.

Meine Logik ist, dass wennid1eine Anfrage anid2sendet, es sich in diesem Fall um eine ausstehende Anfrage handelt. Die Anfrage gilt nur dann als genehmigt, wenn sie vonid2angenommen wird, wodurch die oben genannten Muster (id1, id2) und (id2, id1) in der Tabelle (rotes Kästchen) angezeigt werden.

Meine Frage ist also, wie ich die Tabelleuser_connectionsabfragen kann, damit ich alle ausstehenden Anfragenbasierend aufid1

(blaues Feld) abrufen kann.

Ich weiß nicht, wie ich das machen soll. Daher wäre ich für jede Hilfe dankbar. Vielen Dank im Voraus.

P粉358281574
P粉358281574

Antworte allen (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
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!