我有下面的表(只包括必要的列),我正在尋找執行查詢。一些說明:在SQL中一起實現一對一和一對多查詢
1)表1與表2 & 3具有一對一的關係,其中公共關鍵字是menu_id。
表4-6是有點複雜:
2)表1具有一對多與表4,這樣一個菜單可以有許多類別。
3)表4與表5有一對多的關係,所以一個類別(上述多個)可以有多個項目。
4)表5再次與表6一對多,所以一個項目可以有許多子項目。
Table 1: -- user_menu --
menu_id
Table 2: -- menu_details --
menu_id
Table 3: -- menu_times --
menu_id
Table 4: -- menu_categories --
menu_category_id
menu_id
Table 5: -- menu_items --
menu_item_id
menu_category_id
Table 6: -- menu_subitems--
menu_subitem_id
menu_item_id
問:我需要一個SQL查詢,這將獲取從表中的所有相關數據(所有列,我沒有包括他們在這裏,就在主鍵行)對錶1的特定menu_id。這似乎很簡單,但我在一個到多個部分掙扎一點,並在相同的查詢中獲取數據。
我期待着這樣的事情。其中menu_id = 2,它將獲取關聯的行數據(所有列)。我已經縮短了適合的關鍵名稱。
user_menu | menu_details | menu_times | menu_categories | menu_items | menu_subitems
-------------------------------------------------------------------------------------
menu_id=2 - menu_id=2 - menu_id=2 -< cat_id=1 -< item_id=1 subitem_id=1
cat_id=2 -< item_id=2 -< subitem_id=2
cat_id=3 item_id=3 subitem_id=3
item_id=4 -< subitem_id=4
item_id=5 -< subitem_id=5
subitem_id=6
subitem_id=7
(我縮短了上面的名字,正確的名字在第一個列表中,所以請使用它們)。
ID的引用我需要關聯列數據的主鍵行。再次澄清如果我要查詢menu_id = 2,我將從表2獲取menu_id = 2行& 3.我還將在menu_categories表中獲取WHERE menu_id = 2的類別,item_id rows where menu_category_id = x in menu_item表和子項目表中子項目行(其中item_id = x來自menu_item表)。
我打算將結果複製到數組並將其傳回。只需要查詢位(我假設加入,但我不知道哪裏是相關的)。
謝謝!
MySQL是不是SQL服務器 – podiluska
針對此downvote?幾乎不公平。我給這個問題添加了相關的標籤(需要Sql語句),涵蓋了一系列的技術。然而,我對包含'sql server'標籤的混淆表示歉意,現在已經刪除。 –