Rumah > Soal Jawab > teks badan
Saya mempunyai jadual sambungan Mysql user_connections yang memetakan jadual users dengan lajur berikut: user_from dan user_to >, yang kedua-duanya adalah kunci asing dalam jadual users.
Logik saya ialah jikaid1 menghantar permintaan kepada id2, dalam kes ini ia akan menjadi permintaan yang belum selesai. Permintaan akan dianggap diluluskan hanya jika ia diterima oleh id2 yang akan memberikan corak di atas (id1, id2) dan (id2, id1) dalam jadual (kotak merah).
Jadi soalan saya ialah bagaimana untuk menanyakan jadualuser_connections supaya saya boleh mendapatkan semua permintaan yang belum selesai berdasarkan id1 (kotak biru)
Saya tidak tahu bagaimana untuk melakukan ini. Jadi sebarang bantuan akan dihargai. Terima kasih terlebih dahulu.P粉2873452512023-09-14 20:36:03
Jika anda mencari semua permintaan belum selesai yang ditakrifkan oleh jadual user_connections
, maka anda perlu melakukan sambung luar kiri antara jadual itu dan jadual itu sendiri, seperti ini:
Seni bina (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);
Pertanyaan #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;
pengguna_daripada | pengguna_kepada |
---|---|
67 | 1 |
68 | 1 |
69 | 1 |
70 | 1 |