mysql选择多个表 - 即使其他表为空,也返回结果

时间:2014-02-06 10:41:53

标签: mysql join full-outer-join

select * from deliveries, remittance

表'deliveryies'有10条记录,而表'汇款'没有。此查询不返回任何结果。我想要的是mysql从表'deliveries'返回10条记录。请帮帮我。

这是一个示例表

交付 - >   trans_number   从   到

汇款 - >   trans_number   从   到

6 个答案:

答案 0 :(得分:3)

您可能需要使用LEFT JOIN

select deliveries.* 
from deliveries
left join remittance on ... -- put a join condition here.

这将返回deliveries表中的所有记录,即使在另一个表中找不到匹配的行也是如此。

如果您使用INNER JOIN,它将无法返回任何行,因为另一个表为空。但它只会给你deliveries中符合条件的行。

答案 1 :(得分:2)

尝试类似

的内容
select * from deliveries
left join remittance
on remittance.id = deliveries.remittance_id

它会带来deliveries的所有数据和remittance

的匹配数据

<强>更新

如果您想在任何情况下显示记录,如果任何表有记录,那么您正在寻找FULL OUTER JOIN

但由于不支持FULL OUTER JOIN,请尝试此查询

SELECT * FROM deliveries
LEFT JOIN remittance ON remittance.id = deliveries.remittance_id
UNION
SELECT * FROM deliveries
RIGHT JOIN remittance ON remittance.id = deliveries.remittance_id

答案 2 :(得分:1)

试试这个

     select d.* , r.* from deliveries d , remittance r

答案 3 :(得分:0)

您需要提供一些条件,以便mysql可以显示表格的结果。例如加入

答案 4 :(得分:0)

SELECT * FROM deliveries 
LEFT JOIN remittance 
ON remittance.id = deliveries.remittance_id

答案 5 :(得分:0)

试试这个

select d.* from deliveries d left join remittance r