SELECT bill.bill_id, bill.bill_ref
FROM bill
LEFT JOIN bill_item ON (bill.bill_id = bill_item.bill_id)
WHERE bill_item.job_sales_id = :job_sales_id and
bill.billing_type = "INV"
私は自分の条件に以下を追加したい:SQL SELECTフィールドが空でない場合にのみ
IF bill.bill_ref = "",
bill.bill_ref NOT IN
(SELECT cn_inv FROM bill a WHERE a.billing_type = "CN")
どのように私はそれをコーディングする必要がありますか?
bill table:
bill_id | bill_ref | billing_type | cn_inv
--------+----------+--------------+-------
1 | INV001 | INV |
2 | | INV |
3 | INV002 | INV |
4 | CN001 | CN | INV002
------------------------------------------
bill_item table:
bill_id | item_code | sales_id
--------+-----------+----------
1 | item001 | 10
1 | item002 | 11
2 | item001 | 13
3 | item001 | 13
4 | item001 | 13
が与えられた場合:
sales_idが13である、をrowCountはに等しい戻り0
sales_id 10である、をrowCountはに等しい戻り1.
sales_id 11である、をrowCountは0
使用 'NULL' –
ところで、質問の見出しではなく、あなたが実際に頼まは、2つの異なるものです。 –
WHERE句 'bill_item.job_sales_id ='の条件は、そのカラムが非NULLである必要があり、LEFT JOINの「外側」を無効にし、INNER結合と同等にします。実際に外部結合が必要な場合は、WHERE句の条件をON句に再配置します。 – spencer7593