在我的應用程序的數據庫查詢表中目前有3個表:與子般的關係
- 父表 - (總目標)
- ChildA
- ChildB
如果我想用OOP來說話,ChildA和ChildB都是Parent表的「子類」,但它們並不相似。
的關係的表之間:
- 在父表中的行具有限定該行是否是A型(ChildA)或B類型(ChildB)相關的一個整數。
- 在ChildA和ChildB中都有對父表(id)中相關行的引用。可以只有一個父行與一個孩子相關,並且也可以有一個與父母相關的孩子(一對一r/s)。
- 在所有表格中沒有任何具有相同名稱的列對。
我想要做的是基本檢索父表中的所有行,然後根據每行的類型列從ChildA或ChildB檢索額外的相關信息。
如果我首先檢索所有父行,然後通過循環遍歷行並針對每行查詢n
次,但這可能會非常低效,那麼這將會非常容易。 。
我想知道是否有更好的方法來解決這個問題,甚至在單個查詢中。
我知道我可以使用INNER JOIN
什麼的,但我不知道它是如何工作的,在這種情況下,我需要連接兩個表與第三個(並且列的數量和內容不同)。
所以問題是,最有效的方法是什麼?
編輯:
我看到這個問題被標記爲與另一個問題重複,但是,我不問怎麼設計我的數據庫,但如何查詢。我正在使用每種類型的表設計,並且想要得到來自所有的不同類型(當前爲2)行的所有的所有。
我會知道如何做到這一點的情況下,我想從單一類型獲取所有行,但在這種情況下,這就是爲什麼我問是否以及如何使用單個查詢(例如具有類似於JOIN
的機制)。我知道我可以通過查詢兩次來實現,但我想學習一種更有效的方法來實現它。