2011-11-17 45 views
0

我正在尋找一些MYSQL查詢的幫助。我有兩張桌子,一張包含tickets的列表,另一張列表是membersMYSQL SELECT從兩個表中獲取有或沒有外鍵的行

表門票: TICKET_ID, member_id 表成員: member_id

成員可以,但沒有被分配到一票。我想要做的是選擇所有票據,然後如果票據表中的member_id字段設置爲獲取成員信息。

一種方法是做一個SELECT * FROM Tickets,然後在PHP中循環並檢查是否設置了member_id字段。如果設置,則在members表上執行另一個查詢以獲取相應的信息。唯一的問題是這將是大量的查詢。

有什麼辦法可以在一個連接查詢中獲取所有結果嗎?

感謝

回答

2
Select * 
from Tickets 
Left Join Members On tickets.member_id = members.member_id 
0
select * from tickets left outer join members on tickets.member_id = members.ticket_id 
0
SELECT t.ticket_id, t.member_id FROM tikcets t LEFT JOIN members m ON t.member_id = m.member_id 

這會給你是否已經分配給成員或不是所有的門票。 您應該向查詢中添加要提取的其他字段。

0

試試這個:

SELECT t.ticket_id, m.member_id 
FROM tickets AS t LEFT OUTER JOIN members AS m 
ON t.member_id = m.member_id 

LEFT OUTER JOIN將導致從門票的所有結果要返回,並從會員的任何比賽,沒有不合格的票記錄,所以這可能做的伎倆。

+0

感謝您的解釋,這是我之後。 – ORStudios

相關問題