MYSQL SELECT使用或不使用外键从两个表中获取行

时间:2011-11-17 13:51:21

标签: php mysql sql database

我正在寻找MYSQL查询的帮助。我有两个表,一个包含tickets列表,另一个是members列表。

表门票: TICKET_ID, 会员ID 表成员: member_id

可以但不必将成员分配给故障单。我想要做的是选择所有票据,然后如果在票证表中设置了member_id字段,也可以获取成员信息。

一种方法是执行SELECT * FROM Tickets然后在PHP中循环并检查是否设置了member_id字段。如果设置,则在members表上执行另一个查询以获取相应的信息。唯一的问题是它会有大量的查询。

有没有办法在一个连接查询中获取所有结果?

由于

4 个答案:

答案 0 :(得分:2)

Select *
from Tickets
Left Join Members On tickets.member_id = members.member_id

答案 1 :(得分:0)

select * from tickets left outer join members on tickets.member_id = members.ticket_id

答案 2 :(得分:0)

SELECT t.ticket_id, t.member_id FROM tikcets t LEFT JOIN members m ON t.member_id = m.member_id

这将为您提供是否已分配给会员的所有门票。 您应该在查询中添加要获取的其他字段。

答案 3 :(得分: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将导致返回故障单的所有结果,以及来自成员的任何匹配,而不会取消故障单记录,因此这可以解决问题。