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.

一致するレコードがない場合があります。を使用したinner join場合、行はまったく表示されません。aleft 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
于 2013-04-19T13:09:01.580 に答える