2012-10-28 32 views
0

我有一個查詢,其中列出了數據庫中的10個不同的項目。我如何防止在多個嵌套的sql查詢中重複輸出?

在這個查詢中,我有一個嵌套的查詢,對於上面列出的每個項目1-10,查找其他表中的相關子類別。

因此,最終發生了11個查詢。 1遍歷主要類別,而另外10個則針對每個類別進行查詢和輸出。

問題是,它們共同輸出重複的值。

由於它是通過10個查詢完成的,所以我不能使用DISTINCT,因爲即使輸出在其自己的查詢中不同,它在整個組中也是不同的。

那麼我怎樣才能確保我這樣的多查詢列表是獨一無二的? js或php是否有內置函數可以做到這一點?

+4

1.請在此處列出您的查詢以獲取更多詳細信息? –

+1

Mysql具有子選擇。不是你應該在這些上運行gaga,但是子選擇非常強大。另外不同的事情是可以想象的,但是你可能只是有一個破碎的設計(因爲沒有設計,聽起來像,可能發生,它永遠不會太晚)。因此,不僅要求「解決」您的問題的一些功能,而且還要概述您實際面臨的問題,並打開解決問題的根源。 – hakre

回答

2

您的代碼不是真正可擴展的。你已經達到了大量的查詢,想象如果你有100個項目...

相反,考慮在原始查詢中創建一個子查詢,因爲這將允許你只運行一個查詢和MySQL引擎可以做所有的緊縮工作更容易(因爲它知道你實際要求的)。

儘可能利用JOIN,並密切關注指標。如果沒有看到一些代碼,我無法幫助更多,但這應該有所幫助,因爲DISTINCT會突然再次可用。

+1

聽起來像正確的軌道,沒有一個具體的問題,我不認爲你可以期待更詳細的答案。 – Kato

0

實際上,我找到了一種解決方法,無需重新編寫代碼。我只是把所有查詢的整個輸出放到同一個數組中,使用非重置增量$ array [$ i],然後使用php的array_unique。 :)。 PHP是一個非常多才多藝的語言。我謙卑的(小白)意見。