好吧,我從來沒有發佈在這裏,直到我花了幾天的時間試圖自己找出它 。SQL MYSQL多表查詢加入
這一個是非常艱難的。我會非常驚訝,也會對任何解決這個問題的人表示敬畏。
另請注意:我這樣做是在PHP中,並不在乎有多少查詢或循環 我需要做到這一點..所以如果多個查詢或PHP循環可以幫助,然後通過一切手段請提出建議。謝謝
更新:爲了簡化這個問題,如果你可以使用像%White Gold%insetad這樣的availMetals來解決它,像%catFilter.value%我認爲它會更容易。
我可以使用PHP循環完成剩下的工作。
謝謝任何花時間看的人。
我有3代表具有以下字段:
catFilter - (id, catTypeId, value)
products - (id, availMetals)
prodFilter - (id, catFilterId, productId)
而下面的關係
products.id = prodFilter.productId
catFilter.id = prodFilter.catFilterId
我需要三條數據作爲 最終結果:
catFilter.id (also could be prodFilter.catFilterId)
catFilter.value
到目前爲止,我可以得到那兩個......我需要第三個......
A COUNT OF .. All Products who have an availMetals like
of %White Gold% and also has catTypeId = 1
這裏是最後的名單看起來像......
catFilter.value - 產品計數
classic - 0
rings - 0
sets - 1
stones - 5
three - 0
halo - 3
等。等...
下面是一些表格樣本數據
products
id - availMetals
111 - White Gold
112 - White Gold, Yellow Gold
113 - White Gold
114 - White Gold
115 - White Gold
116 - White Gold, Platinum, Palladium
prodFilter
productId - catFilterId
111 - 43
111 - 12
111 - 48
111 - 47
112 - 12
112 - 51
112 - 48
113 - 12
113 - 51
113 - 48
114 - 12
114 - 51
114 - 48
115 - 12
115 - 48
116 - 12
116 - 51
catFilter
id - catTypeId - value
1 - 1 - Classic
50 - 1 - Rings
47 - 1 - Sets
48 - 1 - Stones
49 - 1 - Three
51 - 1 - Halo
什麼是你的親表之間的聯繫與其他人的管道?該表中的id字段是否與另一個表中的id相對應? – 2012-02-09 09:00:17
是的,product.id = prodFilter.productId和catFilter.id = prodFilter.catFilterId – 2012-02-09 09:07:58
@BrianPatterson試試我的答案。 – 2012-02-09 09:24:40