我試圖通過程序來檢查憑證在憑證表內是否有效。基於主表內容的有條件內連接
有一些簡單的驗證方面,例如憑證是否已經過期到期,還有一些憑證可能是基於客戶按品牌或供應商購買特定產品的條件。
所以,我有券
id | brand | supplier | value etc
表的品牌
id | name etc
和供應商
id | name etc
的表的表如果憑證不是具體到一個品牌或供應商,則憑單故事中的值爲0
我已經試過這個Sql查詢內部加入表,但我沒有得到任何結果,我假設這是因爲我試圖使用的憑證代碼(id)不是特定於品牌或供應商?
SELECT *, brands.name as brandName, suppliers.name as supplierName
FROM `vouchers`
INNER JOIN brands on vouchers.brand = brands.id
INNER JOIN suppliers on vouchers.supplier = suppliers.id
WHERE vouchers.id= '" & voucherCode & "'
我怎麼會寫這樣使表brands
的加入是在表中的vouchers
值brand
條件是
我有看大於0(然後simiarly供應商)在這裏看到其他幾個問題,但恐怕我不能完全理解能夠將他們與我的情況聯繫起來的答案。
的方式使用MySQL數據庫:-)
爲什麼要做一個條件連接?使用'LEFT JOIN'而不是'INNER JOIN'。如果您收到空記錄,則表示沒有找到針對特定記錄的結果。然後在您的應用程序中應用邏輯,如果不爲空 - 已發現品牌(如果爲空) - 沒有品牌。不要在數據庫層上使用邏輯。 – 2012-04-03 12:57:41
回答這個問題,只是因爲我用Sql垃圾! – 2012-04-03 14:00:59