سؤال

أحاول إجراء استعلام معقد جدًا في 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top