我有一張表可能有數千(可能是幾百萬?)的記錄。它基本上是一個存儲特殊日誌條目的審計跟蹤表。它被稱爲「日誌」。在單個查詢中選擇主記錄及其所有相關的外部詳細記錄?
還有一個名爲「LogsExtended」的相關表,它爲Logs表中的每個條目存儲零個或多個附加記錄。
有一個外鍵關係的設置,完成刪除級聯等
我做在日誌表中的SELECT選擇發生在一個特定的時間範圍內的所有記錄,說:「過去30天」 。
但是我想以某種方式同時在LogsExtended表中選擇相關的外部記錄。意圖將此查詢的結果填充到具有適當DataRelation設置的DataSet中。
我嘗試過使用各種JOIN子句,但是這些都傾向於導致錯誤的行爲 - LogsExtended表中每個相關記錄的日誌條目都會重複。
我真的想要避免顯而易見的回退解決方案,即首先查詢Logs表,然後對每個結果運行附加查詢以獲取LogsExtended記錄。這讓我感到非常浪費,並可能導致數千個查詢正在運行。
我想我正在做一個這樣的小山,但我無法弄清楚。
謝謝。
雖然這會導致「一個」表字段的重複,但如果需要在單個SQL查詢/語句中執行,這可能是最好的方法。 – CraigTP 2009-07-20 10:56:00
因此除了返回大量重複記錄之外,沒有辦法做到這一點? 只要我沒有錯過這裏的一個竅門 - 那很好。 我想現在的問題是,在我的.NET應用程序中將這個「平面二維」數據轉換爲三維數據的最佳方式是什麼?目前,我已經提出了一個即興解決方案,它將重複條目彙總到一個條目中,同時將「LogsExtended」信息累積到一個集合中。 – nbevans 2009-07-20 11:02:01