表piyasa_kontrol
和ilaclar
中有数据。并且LEFT JOIN
的ilac_id和id之间存在耦合。但是查询运行时没有返回记录。
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
这里有什么问题?谢谢。
答案 0 :(得分:3)
这是你解决这类问题的方法。第1步。
select count(*)
from piyasa_kontrol
如果这给你超过0,那么第2步
select count(*)
from piyasa_kontrol
pk_yil=2013
继续,直到你的查询返回0.然后你就会知道是什么导致了这种情况发生。
答案 1 :(得分:1)
ilacc_adi
字段的值为空的原因是因为您使用的是left outer join
。
有些情况下没有匹配的记录。如果您使用了inner join
,则根本看不到该行。使用left outer join
,您将获得NULL值。
要调试它,但在连接ID中查看mon-matches正在发生的位置:
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