我有一個包含活動的主要級別類別和子類別的目的地(州)表。我的最終目標是要輸出的XML導航鏈接,這樣我可以鏈接到:查詢選擇活動目的地類別的子類別?
- 每個目標永久(按目的地塞名字的字母順序排列)
- 下
- 類別
以下是我將用sql查詢生成的內容,因爲它對查詢有任何影響,但我不需要此問題的xml幫助:
<item href="/destinations/alabama/">
<list>
<item href="/destinations/alabama/category/">
<list>
<item href="/destinations/alabama/category/sub-category/"></item>
</list>
</item>
</list>
</item>
<item href="/destinations/maryland/">
<list>
<item href="/destinations/maryland/category/">
<list>
<item href="/destinations/maryland/category/sub-category/"></item>
</list>
</item>
</list>
</item>
目前我有一個查詢可以獲取子類別,但它不會考慮活動目標。
SELECT
subcategories.name AS subcategory_name,
subcategories.slug AS subcategory_slug,
categories.name AS category_name,
categories.slug AS category_slug
FROM
subcategories
LEFT JOIN destinations_subcategories ON
destinations_subcategories.subcategory_id = subcategories.id
LEFT JOIN categories ON
destinations_subcategories.category_id = categories.id
WHERE
1=1 AND
subcategories.is_active = 1 AND
categories.is_active = 1
將返回:
subcategory_name subcategory_slug category_name category_slug
Fly Fishing fly-fishing Fishing fishing
但此查詢不考慮其目標是積極的,因爲它可能映射不活動的目的地和活動的類別之間的關係。我想我需要也許有一個子查詢抓住所有活動的目的地,然後加入?
SCHEMA /行樣品:
id name slug active
7 Maryland maryland 1
我的類別表,樣本行:
id name slug active
1 Fishing fishing 1
子類別表樣本行:
id name slug active
3 Fly-Fishing fly-fishing 1
甲ND 2個表來存儲的關係,第一個地圖子類別類別:
id category_id subcategory_id
5 1 3
第二,destinations_subcategories
映射目的地子類別:
id destination_id category_id subcategory_id
5 7 1 3
是不是mysql確定最佳連接順序? (不太確定它是否適用於標準的SQL語法) 如果你從a,b,c中選擇foo,那麼mysql和mysql會根據它的stat估計來確定連接順序。 – 2010-08-17 18:40:31
我的意思是語法上,我將如何去修改此查詢,以便將活動目標考慮在內?我更新了問題標題。 – 2010-08-17 18:45:52
mysql確定最佳連接順序 – 2010-08-17 18:47:10