繁体   English   中英

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

[英]MYSQL SELECT To fetch rows from two tables with or without a foreign key

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

表票证:ticket_id,member_id表成员:member_id

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

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

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

谢谢

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

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

尝试这个:

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将导致返回票证的所有结果,以及来自成员的任何匹配,而不是取消票证记录,因此这可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM