次のように2つのテーブルがあります。
リスト表
listing_id
----------
111111
111113
リスティング_機能_テーブル
id listing_id feature_id
------------------------------
1 111111 4
2 111111 1
5 111113 9
6 111113 1
7 111113 4
指定したすべての feature_id を持つ結果のみを取得しようとしています。したがって、私の場合、(1, 4, 9) を指定すると、listing_id のみ111113
が feature_id 列にこれらを持ち、それが返されます。
クエリで IN を使用しようとしましたが、OR と同等であり、そのため間違った結果が得られます。
以下は、使用しているクエリです。
SELECT * FROM listings_features
JOIN listings ON listings.listing_id=listings_features.listing_id
WHERE listings_features.feature_id IN (1,4,9) GROUP BY listings.listing_id
これにより、次の結果が得られます。
id listing_id feature_id listing_id
----------------------------------------------
1 111111 4 111111
5 111113 9 111113
代わりに次の結果を得るために使用できる方法はありますか:
id listing_id feature_id listing_id
----------------------------------------------
5 111113 1, 4, 9 111113
それともphpレベルでやりますか?