Đây là một truy vấn SQL nhanh cho tập lệnh "mời bạn bè của bạn vào nhóm này".
Tôi có 2 bảng: người dùng và nhóm_members. Tôi đang cố gắng thực hiện truy vấn chọn tất cả bạn bè của tôi - được biểu thị bằng lựa chọn đầu tiên - và trừ tất cả bạn bè của tôi - được biểu thị bằng lựa chọn thứ hai - khỏi phần người dùng và nhóm đã được đại diện.
Tôi liên tục gặp lỗi cú pháp nhưng không biết tại sao. Khi tôi chạy từng truy vấn chọn riêng lẻ, nó sẽ hiển thị chính xác uids của tất cả bạn bè của tôi (sử dụng truy vấn đầu tiên) và tất cả uids của các thành viên trong nhóm (sử dụng truy vấn thứ hai)
(CHỌN a.uid, a.name_f, a.name_l, a.profile_pic, a.location TỪ người dùng a, bạn bè b WHERE a.uid = b.friend_two VÀ b.friend_one = $VAR
TRỪ
CHỌN a.uid, a.name_f, a.name_l, a.profile_pic, a.location TỪ người dùng a, nhóm_members m WHERE m.teamid = 95 và a.uid = m.userid)
MySQL không hỗ trợ TRỪ
. Bạn thường có thể làm điều này bằng cách sử dụng NOT IN
truy vấn phụ để tạo lại nó. Điều này có thể thực hiện công việc:
SELECT
a.uid,
a.name_f,
a.name_l,
a.profile_pic,
a.vị trí
TỪ người dùng a, bạn bè b
Ở ĐÂU a.uid = b.friend_two VÀ b.friend_one = $VAR
VÀ a.uid KHÔNG VÀO (
CHỌN subuser.uid TỪ người dùng subuser, group_members m WHERE m.teamid = 95 VÀ subuser.uid = m.uid
)
Tôi là một lập trình viên xuất sắc, rất giỏi!