我遇到了一個正在處理的項目的問題。有條件的Mysql子查詢,不同的結果
我有2個表格。第一張桌子是workorder
。此表包括以下欄:
- ID
- relation_code
- 產生
- exportready
第二個表是workorder_records
。專欄:
- ID
- workorder_id
- 描述
- 批准
,我需要選擇每workorder
其中產生= 0和exportready = 0,其記錄計數。但是,只有批准= 0和描述!=''的記錄。
我寫此查詢它:
SELECT *, (SELECT COUNT(*) FROM workorder_records
WHERE workorder_records.approved = 0
AND workorder_records.workorder_id = workorder.id
AND workorder_records.description != ''
) as totalunapproved
FROM workorder
WHERE workorder.generated = 0
AND workorder.exportready = 0
我得到正確的結果,當我在phpMyAdmin執行此。當我通過連接到同一個數據庫的PHP腳本運行這個時,我得到了不同的結果。例如,其中workorder_records.description實際上是空的,但仍由查詢函數返回。
SQL小提琴鏈接:http://sqlfiddle.com/#!2/ea8aa/3
任何幫助表示讚賞。
編輯:我通過在PHP中執行檢查來解決問題。這當然不是理想的,但我只是不明白爲什麼條件子查詢在PHPMyAdmin中工作,而不是在我的PHP腳本中。
此查詢應該做你想做的事情,結果應該是穩定的。你可以設置一個SQL小提琴來演示這個問題嗎? – 2015-02-23 12:08:48
SQL小提琴:http://sqlfiddle.com/#!2/ea8aa/3 – 2015-02-23 14:21:19
爲什麼選擇我們?這似乎可以通過標準連接完成。 – 2015-02-23 14:26:15