我有表示產品的具有三個不同的選項(大小,顏色等)如何從匹配對的MySQL表中找到共享鍵值?
##############################
# VariationID # OptionID #
##############################
# 1 # 10 #
# 1 # 20 #
# 1 # 30 #
# 2 # 11 #
# 2 # 20 #
# 2 # 30 #
# 3 # 10 #
# 3 # 22 #
# 3 # 30 #
# 4 # 10 #
# 4 # 20 #
# 4 # 33 #
##############################
通過我使用(Silverstripe)的PHP框架生成的表,所以該變化的兩列的MySQL表我不能輕易修改它。
如何識別哪個VariationID與特定選項匹配?
我可以運行一個MySQL查詢,它返回OptionIDs 10,20,30變體的VariationID?
如果在原始MySQL中不可能,那麼PHP中最好的方法是什麼?
組合OptionID IN(...)','GROUP BY'和'HAVING COUNT(...)= 3' ...類似的問題已經多次討論過了,所以我建議你使用這些關鍵字進行一些研究。 – CBroe
@CBroe對於MySQL優化器,IN(),GROUP BY和HAVING COUNT()是典型的答案。 –
@EugenRieck,我知道這不是最好的表現方式 - 但是當它不再尋找3個選項時,你會怎麼做,但是有一兩個 - 寫二十個JOIN?不知道這是否更好。 – CBroe