加入查询不返回任何结果

时间:2014-04-12 22:14:53

标签: mysql

即使unjoined查询正确返回,以下查询也会返回一个空集。有什么想法吗?

SELECT  
    `res`.pt,  
    `res`.desc,  
    `res`.length,  
    `res`.date,  
    `res`.practice,  
    `res`.v,  
    `res`.doc,  
    `res`.rappt,  
    `pt`.first,  
    `pt`.last 
FROM  
    `res`  
JOIN  
    `pt` ON  `res`.pt = `pt`.pt 
WHERE  
    `res`.id =  '1' AND  
    `res`.code =  '123'

感谢。

2 个答案:

答案 0 :(得分:0)

您的语法有效。

因此,原因可能是:pt包含NULL个值。

使用LEFT OUTER JOIN或制作ptNOT NULL。使用INNER JOIN会从结果集中删除所有符合NULL的行。

同时仔细检查您的WHERE条件是否真正可以访问。

答案 1 :(得分:-1)

试试这可能有用。我怀疑使用date和desc列没有``导致你的问题,因为它们都是MySQL保留字的一部分。

SELECT  `res`.pt,  `res`.`desc`,  `res`.length,  `res`.`date`,  `res`.practice,  `res`.v,  `res`.doc,  `res`.rappt,  `pt`.first,  `pt`.last FROM  `res`  JOIN  `pt` ON  `res`.pt = `pt`.pt WHERE  `res`.id =  '1' AND  `res`.code =  '123'

请注意我改变了:

`res`.desc

`res`.`desc`

`res`.date

`res`.`date`