为结果加入两个表?

时间:2013-08-15 22:55:09

标签: mysql sql

我在数据库personorder表中有2个表。

PERSON表:

PERSON_ID | NAME

ORDER表:

ORDER_ID | ORDER_NO | PERSON_ID

我需要显示所有订单+相应人员的姓名(如果存在),如果不是订单详情。

到目前为止,我起身询问:

SELECT ORDER_ID, ORDER_NO, order.PERSON_ID, NAME 
  FROM person, order 
 WHERE person.PERSON_ID = order.PERSON_ID AND 
       person.FIRST_NAME IS NOT NULL;

只有在名称可用时才给我订单,而我需要显示所有订单,不管名称是否可用。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

是的,您可以使用LEFT JOIN

   SELECT o.order_id, o.order_no, o.person_id, p.name
     FROM `order` o
LEFT JOIN person p
       ON p.person_id = o.person_id AND p.FIRST_NAME IS NOT NULL

LEFT JOIN如果namenull,它仍然可以为您提供订单。