在mysql中连接3个表时返回零或空值

我试图在Mysql查询中加入3个表格(table1,table2和table3),我想从两个表格(表格1和表格2)中比较3个表格中存在的公共列(即'PID')拉出匹配数据。

当加入这3个表时,table1中没有给定日期('2012-12-27')的数据,那么它将返回完整的空白行。在这里,我想从匹配给定Date的table2中获取匹配数据, 'ZERO'或'NULL'表示其他表中没有匹配的数据。 table1 ..而不是整个空白行。

这是我正在尝试的代码,返回一个完整的BLANK ROW ..

SELECT * FROM table3 b
LEFT JOIN table1 r ON r.PID = b.PID
LEFT JOIN table2 a ON ab.PID = b.PID
WHERE b.Name ='stallion' AND r.Date = '2012-12-27' AND a.Date = '2012-12-27'
;

使用两个不同的JOIN语句,然后UNION它们。


table1r )中没有数据的行具有r.Data = NULL,因此被您的WHERE条件过滤掉。 您需要将OR r.Date IS NULL添加到WHERE条件或将条件移动到ON子句中:

SELECT * FROM table3 b
LEFT JOIN table1 r ON r.PID = b.PID AND r.Date = '2012-12-27'
LEFT JOIN table2 a ON a.PID = b.PID AND a.Date = '2012-12-27'
WHERE b.Name ='stallion';
链接地址: http://www.djcxy.com/p/71105.html

上一篇: Return zero or null when Joining 3 tables in mysql

下一篇: INSERT INTO SELECT not working