اثنان من اليسار ينضم واتحاد في MySQL
-
01-10-2019 - |
سؤال
أحاول إجراء استعلام معقد جدًا في MySQL
; ؛ معقدة بالنسبة لي ، على الأقل.
إليك مثال على ما أحاول القيام به:
SELECT * FROM friends
LEFT JOIN users ON users.uid = friends.fid1
LEFT JOIN users ON users.uid = friends.fid2
WHERE (friends.fid1 = 1) AND (friends.fid2 > 1)
UNION SELECT fid2 FROM friends
WHERE (friends.fid2 = 1) AND (friends.fid1 < 1)
ORDER BY RAND()
LIMIT 6;
سأعود: ERROR 1066 (42000): Not unique table/alias: 'users'
.
أين سأخطئ وكيف يجب علي حقًا تقوم بهذا الاستعلام؟
المحلول
الملقب طاولتك ، مثل:
LEFT JOIN users u1 ON u1.uid = friends.fid1
LEFT JOIN users u2 ON u2.uid = friends.fid2
نصائح أخرى
لقد كتبت اليسار اليسر friends
الطاولة
LEFT JOIN users users1 ON users1.uid = friends.fid1
LEFT JOIN users users2 ON users2.uid = friends.fid2
لا تنتمي إلى StackOverflow