2 행과 1 행의 숫자가 site_id = 1
인 경우에만 인 ID를 가져 오려고합니다.숫자가 GROUP_CONCAT에 있는지 확인 가능
두 번 테이블에 가입하려고했지만 쿼리가 너무 오래 걸렸습니다. 그래서 지금 내가하고있는 일은 사이트 ID를 연결하고 1이이 concat 값에있는 행만 제한하고 28 개가이 값으로 제한됩니다. 그러나, 나는 그것을 작동시킬 수 없습니다. site_id가 숫자이고 concat 값이 sites
인 문자열과 관련이 있습니까? 이 두 값이 연결된 문자열에 있는지 어떻게 확인할 수 있습니까? WHERE
절이 이미 site_id IN (1,28)
까지 필터링 한 경우 COUNT(DISTINCT site_id) = 2
, 당신은 부질없이 확인할 수있는 HAVING
절에 테스트하여
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
이것은 작동 할 수 있습니다. 그러나 쿼리를 느리게 실행시킬 수 있기 때문에 사용하는 것을 피하려고했습니다. 또 다른 것은 사이트 28의 행에 날짜가 있음을 확인할 수 있어야한다는 것입니다.>> = 2013-02-27 ' – Nicola
@Nicola Ok - 새 WHERE 절로 업데이트되었습니다. –
그것은 훌륭합니다. 고맙습니다. 거기에서 where 절을 사용하면 매우 영리합니다. – Nicola