2009-12-17 18 views
7

Tengo 2 tablas de las que necesito obtener información, y me gustaría obtener la información en una sola consulta.MySQL - UNE 2 tablas con 2 ID's en común

La situación es la siguiente:

table "matches" : 

id 
team_A_id 
team_B_id 

table "teams" : 

id 
name 

El objetivo es recuperar la información de la tabla de "coincidencias" (partidos de fútbol) y unirse a la información con los "equipos" de mesa. Lo necesito porque mi proveedor de servicios web no tiene los datos xml en mi idioma (portugués), así que tengo que ofrecerle a mi cliente la opción de traducir ciertos nombres de equipo al portugués, de lo contrario agregaría los nombres de los equipos directamente en el tabla "coincidencias" El problema es que necesito unirme a las 2 tablas con 2 id. Sé cómo unir mesas con 1 identificación en común, pero no puedo entender cómo hacerlo con 2 id, y mantener intacta la información de los 2 equipos involucrados en cada partida.

¿Esto es posible? ¿O tengo que crear consultas por separado?

Respuesta

9
select match.*, teama.name, teamb.name 
from matches as match 
inner join teams as teama on teama.id = match.team_A_id 
inner join teams as teamb on teamb.id = match.team_B_id 

funcionaría en SQL Server y MySQL, presumiblemente, también.

+0

Sí! ¡Esto es lo que he estado buscando por años! Gracias – Thavarith

6

incluir la tabla equipos por segunda vez (con un alias diferente) y tratar la consulta como ser entre tres tablas:

SELECT * 
FROM matches m 
JOIN teams t1 ON m.team_A_id = t1.id 
JOIN teams t2 ON m.team_B_id = t2.id 
3
SELECT * 
    FROM matches m, team t1, team t2 
WHERE m.team_A_id = t1.id 
    AND m.team_B_id = t2.id 
Cuestiones relacionadas