【问题标题】:MYSQL SELECT To fetch rows from two tables with or without a foreign keyMYSQL SELECT 从有或没有外键的两个表中获取行
【发布时间】:2011-12-31 09:03:12
【问题描述】:

我正在寻求有关MYSQL 查询的帮助。我有两张表,一张包含tickets 的列表,另一张包含members 的列表。

餐桌门票: 票证ID, 会员ID 表成员: member_id

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

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

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

谢谢

【问题讨论】:

    标签: php mysql sql database


    【解决方案1】:
    Select *
    from Tickets
    Left Join Members On tickets.member_id = members.member_id
    

    【讨论】:

      【解决方案2】:
      select * from tickets left outer join members on tickets.member_id = members.ticket_id
      

      【讨论】:

        【解决方案3】:
        SELECT t.ticket_id, t.member_id FROM tikcets t LEFT JOIN members m ON t.member_id = m.member_id
        

        这将为您提供所有票证,无论它们是否已分配给成员。 您应该向查询中添加要获取的其他字段。

        【讨论】:

          【解决方案4】:

          试试这个:

          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 将返回所有门票结果,以及会员的任何匹配,而不是取消门票记录,所以这可以解决问题。

          【讨论】:

          • 感谢您的解释,这就是我所追求的。
          猜你喜欢
          • 1970-01-01
          • 2015-04-11
          • 1970-01-01
          • 2010-12-08
          • 1970-01-01
          • 2021-03-08
          • 1970-01-01
          • 2021-03-08
          • 1970-01-01
          相关资源
          最近更新 更多