2
select * from deliveries, remittance

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

这是一个示例表

交货 -> trans_number from to

汇款 -> trans_number from to

4

6 回答 6

3

您可能需要使用LEFT JOIN

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

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

如果你使用INNER JOIN它不会返回任何行,因为另一个表是空的。但它只会为您提供deliveries与条件匹配的行。

于 2014-02-06T10:46:45.573 回答
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
于 2014-02-06T10:44:47.733 回答
1

尝试这个

     select d.* , r.* from deliveries d , remittance r
于 2014-02-06T10:46:01.110 回答
0

您需要给出一些标准,以便mysql可以显示表格的结果..像加入

于 2014-02-06T10:46:10.357 回答
0
SELECT * FROM deliveries 
LEFT JOIN remittance 
ON remittance.id = deliveries.remittance_id
于 2014-02-06T10:46:14.680 回答
0

尝试这个

select d.* from deliveries d left join remittance r
于 2014-02-06T10:46:35.383 回答