0

piyasa_kontrol表和中有数据ilaclar。并且在 ilac_id 和 id 上存在耦合LEFT JOIN。但是查询运行时没有返回记录。

SELECT ilaclar.ilac_adi AS ilAdi
FROM (SELECT *
      FROM piyasa_kontrol
      WHERE pk_yil=2013
      AND pk_ay IN (4, 5, 6)) AS pik
LEFT JOIN ilaclar ON pik.ilac_id = ilaclar.id

这里有什么问题?谢谢你。

4

2 回答 2

3

这就是您解决此类问题的方法。步骤1。

select count(*)
from piyasa_kontrol 

如果这给你超过 0,第 2 步

select count(*)
from piyasa_kontrol 
pk_yil=2013 

继续,直到您的查询返回 0。然后您就会知道是什么导致了这种情况发生。

于 2013-04-19T12:03:15.193 回答
1

ilacc_adi字段具有空值的原因是因为您使用的是left outer join.

有没有匹配记录的情况。如果您使用 an inner join,则根本看不到该行。使用 aleft outer join你会得到一个 NULL 值。

要对此进行调试,但在连接 ID 中查看 mon 匹配发生的位置:

SELECT pik.ilac_id,  ilaclar.ilac_adi AS ilAdi
FROM (SELECT *
      FROM piyasa_kontrol
      WHERE pk_yil=2013
      AND pk_ay IN (4, 5, 6)) AS pik
LEFT JOIN ilaclar ON pik.ilac_id = ilaclar.id
于 2013-04-19T13:09:01.580 回答