Bạn sử dụng một bảng duy nhất hai lần trong một truy vấn bằng cách cho nó hai cái tên, như thế.
Bí danh thường được giới thiệu với từ khóa AS. Bạn cũng thường chỉ định một điều kiện kết nối (nếu không có nó, bạn sẽ nhận được Cartesian Product của bảng được nối với chính nó). Đối với ưu tiên bạn sử dụng ký hiệu JOIN rõ ràng.
SELECT c1.id AS sender, c2.id AS replier
FROM contacts AS c1
JOIN contacts AS c2 ON c1.xxx = c2.yyy;
Không rõ cột nào có thể được sử dụng để tham gia trong ví dụ này; chúng tôi không có bất kỳ thông tin nào để giúp giải quyết vấn đề đó.
Thông thường, có muốn được bảng khác để hoạt động như trung gian, chẳng hạn như một bảng tin nhắn:
SELECT c1.id AS sender, c1.email AS sender_email,
c2.id AS replier, c2.email AS replier_email,
m.date_time
FROM messages AS m
JOIN contacts AS c1 ON m.sender_id = c1.id
JOIN contacts AS c2 ON m.replier_id = c2.id;
Nguồn
2011-09-12 05:49:30
Hãy thử nó và xem. Câu trả lời là có BTW –