2013-06-07 25 views
18

Tôi muốn tham gia hai bảng ngay cả khi không có kết quả nào trên bảng thứ hai.phải tham gia ngay cả khi hàng trên bảng thứ hai không tồn tại

sử dụng bảng:

uid | name 
1  dude1 
2  dude2 

tài khoản bảng:

uid | accountid | name 
1  1   account1 

bảng tôi muốn:

uid | username | accountname 
1  dude1  account1 
2  dude2  NULL 

truy vấn tôi đang cố gắng với:

SELECT user.uid as uid, user.name as username, account.name as accountname 
FROM user RIGHT JOIN account ON user.uid=accout.uid 

những gì tôi nhận được:

uid | username | accountname 
1  dude1  account1 
+9

Sử dụng LEFT JOIN. – MicSim

+0

đã cố gắng .. – coiso

+6

Lol ... tuyết lở của câu trả lời "tham gia trái". –

Trả lời

22

sử dụng Left Join thay

SELECT user.uid as uid, user.name as username, account.name as accountname 
FROM user LEFT JOIN account ON user.uid=accountid.uid 
4

Hãy thử với một truy vấn LEFT JOIN

SELECT user.uid as uid, user.name as username, account.name as accountname 
FROM user 
LEFT JOIN account 
ON user.uid=accout.uid 

Tôi muốn các bạn có một cái nhìn tại đại diện hình ảnh này JOIN query

4

Tiếp tục tham gia s tất cả các kết quả từ bảng thứ 2 (nó giữ tất cả các kết quả trên bảng bên phải), bạn muốn có một phép nối trái, hoặc hoán đổi vị trí của người dùng và tài khoản trong mệnh đề join.

SELECT user.uid as uid, user.name as username, account.name as accountname 
FROM user LEFT JOIN account ON user.uid=account.uid 

Tôi tin rằng nên làm điều đó.

+1

'người dùng' không phải là từ khóa dành riêng trong mysql http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html – Fabio

+0

Chỉ cần nhìn điều đó, cảm ơn sự điều chỉnh. –

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