Tôi có một bảng dự án có hai khóa ngoại cho người dùng (user_id và winner_user_id), một cho chủ sở hữu của dự án và một cho người chiến thắng của dự án. Một cái gì đó nhưSQL, Cách truy vấn với nhiều khóa ngoài trong một bảng?
+----------------+-------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------------------+------+-----+---------+----------------+
| project_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| start_time | datetime | NO | | NULL | |
| end_time | datetime | NO | | NULL | |
| title | varchar(60) | NO | | NULL | |
| description | varchar(1000) | NO | | NULL | |
| user_id | int(11) | NO | | NULL | |
| winner_user_id | int(10) unsigned | YES | | NULL | |
| type | enum('fixed','auction') | YES | | NULL | |
| budget | decimal(10,0) | YES | | NULL | |
+----------------+-------------------------+------+-----+---------+----------------+
Bây giờ tôi đang cố gắng truy vấn thông tin về dự án và dữ liệu về cả hai người dùng.
Vì vậy, tôi đã đưa ra một truy vấn như
SELECT projects.project_id, projects.title, projects.start_time,
projects.description, projects.user_id, projects.winner_user_id,
users.username as owner, users.username as winner
FROM projects,users
WHERE projects.user_id=users.user_id
AND projects.winner_user_id=users.user_id
nào trả về một tập rỗng rõ ràng. Vấn đề thực sự là làm thế nào để tôi tham khảo các user_ids khác nhau này. Tôi thậm chí đã thử sử dụng các từ khóa AS và sau đó sử dụng tên tôi đã tạo ra trong cùng một truy vấn sql nhưng dường như không hoạt động.
Để làm cho mọi việc rõ ràng cuối cùng tôi muốn một cái gì đó giống như
+------------+-------------------------------------------------+---------------------+---------+----------------+--------------+--------------+
| project_id | title | start_time | user_id | winner_user_id | owner | winner |
+------------+-------------------------------------------------+---------------------+---------+----------------+--------------+--------------+
| 1 | CSS HTML Tableless expert for site redesign | 2009-09-01 21:07:26 | 1 | 3 | mr X | mr Y |
| 2 | High Quality Ecommerce 3-Page Design HTML & CSS | 2009-09-01 21:10:04 | 1 | 0 | mr X | mr Z |
Làm thế nào tôi có thể xây dựng một truy vấn để xử lý này?
Xin cảm ơn trước.
Cảm ơn rất nhiều! Tôi không bao giờ thực sự sử dụng cú pháp INNER JOIN nhưng tôi thấy nó thú vị là winnerUser không được chỉ định trực tiếp sau FROM. – zenna