假設我有這4個表,包括各種外鍵關係(例如一個區域必須屬於某個位置,商店必須屬於區域,一個項目的價格必須屬於某個店鋪等..)MySQL的 - 對於這種分層模型中選擇數據的最佳方法是什麼?
----------------------------------
|Location Name | Location ID |
| | |
----------------------------------
-------------------------------------------------
|Area Name | Area ID | Location ID |
| | | |
-------------------------------------------------
-------------------------------------------------
| Shop Name | Shop ID | Area ID |
| | | |
-------------------------------------------------
----------------------------------
| Item Price | Shop ID |
| | |
----------------------------------
我希望和「商品價格」是屬於一個特定的位置ID的。所以所有區域和商店的物品價格總計爲位置id'x'。我發現這樣做
的一種方法是加入所有表的一個位置,並得到量例如:
SELECT SUM(Item Price) FROM
items
left join shops ON (items.shop id = shops.shop id)
left join areas ON (shops.area id = areas.area id)
left join locations ON (areas.location id = location.location id)
WHERE Location Id = 4;
然而,這是做到這一點的最好辦法,因爲它涉及檢索的全樹數據並將其過濾掉?如果有一百萬行,會有更好的方法嗎?或者這是最好的方法嗎?
是 - 這似乎是最好的辦法。聯接是一個數據庫的好處。 – Randy