我有兩個表類似於數據庫:許多SQL查詢VS 1個複雜查詢
table1
------
Id : long, auto increment
Title : string(50)
ParentId : long
table2
------
Id : long, auto increment
FirstName : string(20)
LastName : string(30)
Zip : string(5)
table2
有table1
一個一對多的關係,其中包括許多零。
我也有以下查詢(即正常工作,所以忽略錯別字的等等,這是一個例子):
SELECT t1.Id AS tid, t1.Title, t2.Id AS oid, t2.FirstName, t2.LastName
FROM table t1
INNER JOIN table2 t2 ON t1.ParentId = t2.Id
WHERE t2.Id IN
(SELECT Id FROM table2
WHERE Zip IN ('zip1', 'zip2', 'etc'))
ORDER BY t2.Id DESC
的查詢在屬於一個人在table2
table1
的所有項目,該人在哪一個列出的郵政編碼中。
我現在的問題是:我想在列出的郵政編碼中顯示所有用戶(其項目,如果可用),而不僅僅是帶有項目的郵件。
所以,我在想,我應該只是做一些簡單的有很多疑問,比如:
SELECT Id AS oid, FirstName, LastName FROM table2 WHERE Zip in ('zip1', 'zip2', 'etc')
foreach(result) {
SELECT Id AS tid, Title FROM table2 WHERE ParentId = oid
}
或者我應該拿出更詳盡的單個SQL語句?如果是這樣,我可以得到一些幫助嗎?謝謝!
重複? http://stackoverflow.com/questions/684989/one-complex-query-vs-multiple-simple-queries – JochenJung 2011-06-10 14:18:52
我不同意,這取決於答案,因爲我正在尋找建設我的查詢的具體建議。 – steveo225 2011-06-10 14:20:37