的多個行選擇條目我有一個數據庫兩個表:MYSQL:相對於另一個表
- 條目(ID,距離,狀態[,...])
- entriesmeta(ID, entry_ID,metakey,metavalue)
到現在爲止,我選擇的條目是這樣的:
SELECT ID,
distance
FROM entries
WHERE status = '2' HAVING distance < 30
ORDER BY distance
LIMIT 20
現在,第二個表包含這類數據:
ID | entry_ID | metakey | metavalue
1 | 137 | service | 13
2 | 137 | service | 7
3 | 137 | service | 76
4 | 84 | service | 23
etc.
第一個表中的條目是餐館,第二個表中的服務是他們提供的服務。我一直在嘗試的一段時間是:創建一個HTML搜索表單,讓用戶通過複選框選擇某些服務。然後,MYSQL查詢應該選擇提供所有這些服務的所有條目。到目前爲止,搜索表單將所選服務放在一個數組中(7,13,9,27)。
我的問題是找到正確的數據庫查詢。它應該將metavalue-field與checkbox-array匹配,然後從第一個表中選擇所有提供所有這些服務的條目。我一直在嘗試使用「LEFT JOIN ON entries.ID = entriesmeta.entry_ID」和幾個WHERE子句,但沒有成功。我想知道是否有人可以幫忙。
非常感謝您 - 抱歉我的英文不好。
你可以發佈你現在的查詢語句嗎? – Maximus2012
您可能想要使用此http://www.sqlfiddle.com/#!2/aef18/2(注意SQLFiddle演示基於用戶491243的anwser),以優化您希望兩個表中的記錄數量較高並刪除需要關閉「使用臨時的,使用filesort」什麼是真正的性能殺手的MySQL,因爲排序可以在磁盤上完成 –