site_id = 1
2つの行があり、一方の行に、、もう一方の行があるIDのみを取得したいと思いsite_id = 2
ます。
テーブルを2回結合しようとしましたが、クエリに時間がかかりすぎました。したがって、私が現在行っているのは、サイトIDを連結し、行をこの連結値に1が含まれ、28が含まれる行のみに制限することです。しかし、私はそれを動作させることができません。これは、site_idが数値であり、私の連結値sites
が文字列であることに関係していますか?これらの値が両方とも連結された文字列に含まれていることを確認するにはどうすればよいですか?
SELECT *, COUNT(id) as num_ids
FROM (
SELECT id, CONVERT(GROUP_CONCAT(`site_id`) USING utf8) as `sites`, MAX(`Date_Added`) as `date_added_lb`
FROM `product_location` pl
WHERE `site_id` =1 OR `site_id` = 28
GROUP BY id
) as t
WHERE t.`date_added_lb` >="2013-02-27"
AND 1 IN(`sites`)
AND 28 IN(`sites`)
AND num_ids=2