나는 이것이 쉬운 질문이지만 내 MySQL 찹은 약간 녹슬지는 않을 것이라고 생각한다. 여러 조건부 조인을 사용하여 다음 시나리오에 대한 적절한 쿼리를 생성하는 데 약간의 도움이 필요합니다. 나는 하나의 테이블에 속성 (태그를 생각하는)과 다른 테이블에 레코드 목록을 가지고있다. 쿼리에 하나 이상의 속성이 정의 된 페이지와 일치시키려는 경우 문제가 발생합니다.다중 조건부 연결
+--------------------------------------+
| ATTRIBUTES |
+-----------+------------+-------------+
| name | value | page_id |
+-----------+------------+-------------+
| type food 2 |
| fruit apple 2 |
| color green 2 |
| type frog 3 |
| color green 3 |
+--------------------------------------+
+--------------------------------------+
| PAGES |
+--------------+-----------------------+
| page_id | title |
+--------------+-----------------------+
| 2 Granny Smith |
| 3 Kermit the Frog |
+--------------------------------------+
사용 사례
Query: type+food
Results: Granny Smith
Query: color+green
Results: Granny Smith, Kermit the Frog
Query: type+food and color+green
Results: Granny Smith
이것은 내가 놀고 있었는데 쿼리는하지만, 분명히 작동하지 :
SELECT page.page_id, page.title
FROM page_attributes
LEFT JOIN page ON (page_attributes.page_id = page.page_id)
WHERE (page_attributes.name = 'color'
AND page_attributes.value = 'green')
AND (page_attributes.name = 'type'
AND page_attributes.value = 'food')
시도한 SQL을 알려주십시오. –
어떤 쿼리가 작동하지 않습니까? –
당신이 원하는 결과 만 원한다면 전혀 참여할 필요가 없습니다. – luksch