Tengo una tabla de proyectos que tiene dos claves foráneas para usuarios (user_id y winner_user_id), una para el propietario del proyecto y otra para el ganador del proyecto. Algo comoSQL, ¿Cómo consultar con múltiples claves foráneas en una tabla?
+----------------+-------------------------+------+-----+---------+----------------+
| 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 | |
+----------------+-------------------------+------+-----+---------+----------------+
Ahora estoy intentando en una sola consulta obtener información sobre los proyectos y los datos sobre ambos usuarios.
Así que formula una consulta como
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
que devuelve un conjunto vacío, obviamente. El verdadero problema es cómo hago referencia a estos diferentes user_ids. Incluso intenté usar la palabra clave AS y luego usar el nombre que había creado en la misma consulta sql pero aparentemente eso no funciona.
Para hacer las cosas claras al final me gustaría algo así como
+------------+-------------------------------------------------+---------------------+---------+----------------+--------------+--------------+
| 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 |
¿Cómo puedo construir una consulta de manejar esto?
Gracias de antemano.
Gracias mucho! Nunca uso realmente la sintaxis INNER JOIN, pero me parece interesante que winnerUser no se especifique directamente después de FROM. – zenna