2009-12-17 45 views
7

Tôi có 2 bảng mà tôi cần để lấy thông tin và muốn nhận thông tin trong một truy vấn đơn lẻ.MySQL - THAM GIA 2 bảng với 2 ID chung ở

Tình hình là thế này:

table "matches" : 

id 
team_A_id 
team_B_id 

table "teams" : 

id 
name 

Mục tiêu là để lấy thông tin từ bảng "trận đấu" (bóng đá phù hợp) và tham gia vào các thông tin với bảng "đội". Tôi cần điều này bởi vì nhà cung cấp dịch vụ web của tôi không có dữ liệu xml bằng ngôn ngữ của tôi (tiếng Bồ Đào Nha), và vì vậy tôi cần phải cung cấp cho khách hàng của tôi tùy chọn dịch tên nhóm nhất định sang tiếng Bồ Đào Nha, nếu không tôi sẽ thêm tên nhóm trực tiếp vào "phù hợp" bảng. Vấn đề là tôi cần phải JOIN 2 bảng với 2 id. Tôi biết làm thế nào để tham gia các bảng với 1 id chung, nhưng không thể tìm ra cách để làm điều đó với 2 id, và mantaining thông tin từ 2 đội tham gia vào mỗi trận đấu còn nguyên vẹn.

Điều này có khả thi không? Hay tôi phải tạo các truy vấn riêng biệt?

Trả lời

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 

sẽ làm việc trong SQL Server và có lẽ MySQL quá.

+0

Có! Đây là những gì tôi đã tìm kiếm lứa tuổi! Cảm ơn – Thavarith

6

Bao gồm bảng các đội lần thứ hai (với một bí danh khác nhau) và xử lý các truy vấn như là giữa ba bảng:

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 
Các vấn đề liên quan