항목에 taggables 테이블을 통해 많은 태그가 있습니다. MYSQL에서 "Square"라고 태그도 지정되지 않은 "Blue"태그가 붙은 항목을 검색하려면 어떻게해야합니까?아이가있는 부모를 찾으려면 어떻게해야합니까?
0
A
답변
0
당신은 EXISTS
및 NOT EXISTS
으로이 작업을 수행 할 수 있습니다
SELECT items.* FROM items
WHERE EXISTS(
SELECT * FROM item_has_tags
WHERE item_id=items.id AND name='square')
AND NOT EXISTS(
SELECT * FROM item_has_tags
WHERE item_id=items.id AND name='blue');
단순화하기 위해 일을 보기를 만들 수 있습니다.
CREATE VIEW item_has_tags AS
SELECT * FROM taggables
JOIN tags ON (taggables.tag_id = tags.id);
그러면 쿼리는 다음과 같이됩니다.
SELECT items.* FROM items WHERE
EXISTS(SELECT * FROM item_has_tags WHERE item_id=items.id AND name='square')
AND NOT
EXISTS (SELECT * FROM item_has_tags WHERE item_id=items.id AND name='blue');
0
당신은 레코드의 ID를 커밋 할 반환하는 하위 쿼리 사용하여이 문제를 해결 할 수 있습니다
select i.*
from items as i
left join (
select distinct tg.item_id
from taggables as tg
inner join tags as t on tg.tag_id = t.id
where t.name = 'square'
) as a on I.id = a.item_Id
where a.item_id is null and i.name = 'blue';
+0
@Iserni 실로! 오타를 유감스럽게 생각합니다. 방금 수정했습니다. – Barranka
관련 문제
- 1. 자녀가없는 부모를 찾으려면 검색어를 작성하십시오.
- 2. 요소의 부모를 얻으려면 어떻게해야합니까?
- 3. Excel에서 QueryTable을 찾으려면 어떻게해야합니까?
- 4. XCode4에서 libgcov.a를 찾으려면 어떻게해야합니까?
- 5. $ CATALINA_HOME 값을 찾으려면 어떻게해야합니까?
- 6. 다음 주말을 찾으려면 어떻게해야합니까?
- 7. 디렉토리에서 파일을 찾으려면 어떻게해야합니까?
- 8. 메쉬의 중심을 찾으려면 어떻게해야합니까?
- 9. IDLE에서 NLTK를 찾으려면 어떻게해야합니까?
- 10. Xcode에서 UILabel을 찾으려면 어떻게해야합니까?
- 11. 깨진 링크를 찾으려면 어떻게해야합니까?
- 12. 짹짹 모음을 찾으려면 어떻게해야합니까?
- 13. Rails3에서 has_one 연관을 통해 자녀의 부모를 찾으려면 어떻게합니까?
- 14. 이전 형제의 아이를 찾으려면 어떻게해야합니까?
- 15. 가장 가까운 소수를 찾으려면 어떻게해야합니까?
- 16. Selenium에서 "현재"객체를 찾으려면 어떻게해야합니까?
- 17. 배열에서 bool 값을 찾으려면 어떻게해야합니까?
- 18. digg에서 URL의 제출물을 찾으려면 어떻게해야합니까?
- 19. Google지도 : 인근 마크를 찾으려면 어떻게해야합니까?
- 20. ActiveRecord에서 퍼센트 완료를 찾으려면 어떻게해야합니까?
- 21. 비밀 수은 개정판을 찾으려면 어떻게해야합니까?
- 22. 문자열의 마지막 번호를 찾으려면 어떻게해야합니까?
- 23. arraylist에서 특정 값을 찾으려면 어떻게해야합니까?
- 24. 요소의 CSS3 회전을 찾으려면 어떻게해야합니까?
- 25. fs : 상위 폴더를 찾으려면 어떻게해야합니까?
- 26. ToolStripMenuItem이 속한 ContextMenuStrip을 찾으려면 어떻게해야합니까?
- 27. 문자열을 여러 개 찾으려면 어떻게해야합니까?
- 28. Android 모바일에서 데이터베이스를 찾으려면 어떻게해야합니까?
- 29. magento에서 dispatchEvent 메소드를 찾으려면 어떻게해야합니까?
- 30. 데이터베이스에 주문이없는 고객을 찾으려면 어떻게해야합니까?
http://forums.mysql.com/read.php?10,507748,507839이 고대 예를 살펴보십시오. 더 이상의 질문이 있으시면 다시 오십시오. (적절한 DDL이 바람직 함) – Strawberry