내 테이블은 다음과 같습니다.
이제 articleid = 54 인 마지막 두 레코드를보십시오.
이 레코드를 한 번만 선택하고 싶습니다. (fieldsid = 1 및 value = 1) 및 (fieldsid = 2 및 value = 1)에 대해 동일한 articleid를 가진 모든 레코드를 선택하고 싶습니다.
은 articleid
동일해야하지만, 두 개의 서로 다른 기록에서 원하는 값을 확인합니다.
누군가 나를 도와주세요.
이렇게하려고합니다.
select n1.id, n1.fieldsid, n1.value
from `tablename` n1
where (n1.fieldsid='1' and n1.value='1')
and n1.id = (select n2.id
from `tablename` n2
where (n1.fieldsid='2' and n2.value='2')
and n1.id=n2.id)
SELECT youtable.*
FROM yourtable
WHERE articleid IN (SELECT articleid
FROM yourtable
WHERE (fieldsid, value) IN ((1,1),(2,1))
GROUP BY articleid
HAVING COUNT(*)=2)
편집 : 첫 번째 레코드 만 필요한 경우 :
SELECT youtable.*
FROM yourtable
WHERE id IN (SELECT MIN(id)
FROM yourtable
WHERE (fieldsid, value) IN ((1,1),(2,1))
GROUP BY articleid
HAVING COUNT(*)=2)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다