データベースに 2 つのテーブルがあります。
- エントリ (ID、距離、ステータス[、...])
- エントリーメタ (ID、entry_ID、メタキー、メタ値)
今まで、次のようなエントリを選択しました。
SELECT ID,
distance
FROM entries
WHERE status = '2' HAVING distance < 30
ORDER BY distance
LIMIT 20
2 番目のテーブルには、次のようなデータが含まれています。
ID | entry_ID | metakey | metavalue
1 | 137 | service | 13
2 | 137 | service | 7
3 | 137 | service | 76
4 | 84 | service | 23
etc.
最初のテーブルのエントリはレストランで、2 番目のテーブルのサービスは提供するサービスです。私がしばらくの間試みていたのはこれです: ユーザーがチェックボックスで特定のサービスを選択できるようにする HTML 検索フォームを作成します。MYSQL クエリは、これらすべてのサービスを提供するすべてのエントリを選択する必要があります。これまでのところ、検索フォームは選択したサービスを配列 (7,13,9,27) に入れています。
私の問題は、正しいデータベース クエリを見つけることです。メタ値フィールドをチェックボックス配列と一致させてから、最初のテーブルからすべてのエントリを選択して、これらすべてのサービスを提供する必要があります。「LEFT JOIN ON entries.ID = entriesmeta.entry_ID」といくつかの WHERE 句を試しましたが、成功しませんでした。誰か助けてくれませんか。
よろしくお願いします - そして私の下手な英語でごめんなさい。