2011-02-06 42 views
18

Làm cách nào để tôi tạo sẵn hai kết nối bên trong trong một truy vấn?Hai kết nối bên trong MYSQL

Ie: ba bảng

Invoice
Địa chỉ
Khách hàng

Invoice có một cột mà tham chiếu một id trong khách hàng. Nó cũng có một cột tham chiếu đến một địa chỉ. Tôi cần lấy cả tên khách hàng từ bảng được so khớp và địa chỉ từ bảng được so khớp. Làm thế nào tôi có thể INNER JOIN cả hai bảng?

Tôi sẽ thêm một vài chi tiết ...
hóa đơn có dòng địa chỉ (tài liệu tham khảo địa chỉ id), khách hàng (tài liệu tham khảo id khách hàng), id và ghi chú khách hàng có hàng first_name, last_name địa chỉ có hàng STREET_NAME và thành phố

tôi cần phải kéo lên

+0

Cần thêm dữ liệu. –

Trả lời

29

Bạn có thể có nhiều mệnh đề JOIN như bạn cần trong truy vấn. Mỗi mục có mệnh đề ON, trong đó bạn chỉ định các cột có liên quan giữa các bảng đã nối.

SELECT 
    columns 
FROM 
    invoice 
INNER JOIN 
    address 
ON 
    join_condition 
INNER JOIN 
    client 
ON 
    join_condition 
+0

Tôi đã không nhận thức được điều này. Tốt để biết. Cảm ơn! – Yoshiyahu

8

Cái gì như:

SELECT 
    c.*, i.*, a.* 
FROM 
    invoices i 
INNER JOIN 
    client c 
ON 
    i.clientid = c.clientid 
INNER JOIN 
    address a 
ON 
    a.clientid = c.clientid 
WHERE 
    i.id = 21 

Đừng quên bạn chỉ chọn các lĩnh vực bạn yêu cầu, không * (tất cả).

+0

Điều này có hoạt động mà không có BẬT thứ hai không? – Yoshiyahu

+0

Rất tiếc, quên thêm điều đó. Xem chỉnh sửa. – Prisoner

+0

Nó hoạt động, cảm ơn –

Các vấn đề liên quan