데이터 테이블을 참조하고 아래 질의하시기 바랍니다 ..최상위 카테고리를 선택하여 하위 카테고리에 속한 항목을 검색하려면 어떻게해야합니까?
Items
Id, Name
1, Item 1
2, Item 2
Categories
Id, Name, Parent ID
1, Furniture , 0
2, Tables, 1
3, Beds, 1
4, Dining Table, 2
5, Bar Table, 2
4, Electronics, 0
5, Home, 4
6, Outdoors, 4
7, Table lamp, 4
ItemCategory
ItemId, CategoryId
1, 2 .. Row1
2, 4 .. Row 2
2, 5 .. Row 3
ItemCategory 테이블에는 항목은 범주에 속한다. 항목은 최상위 및 하위 범주에 속할 수 있습니다. Tob 수준, 하위 수준 및 하위 하위 수준이라는 약 3 가지 수준의 범주가 있습니다.
사용자는보고 제출하고자하는 모든 범주를 선택하고 난
SELECT * FROM items i INNER JOIN ItemCategory ic ON
ic.itemId = i.itemId AND ic.itemId IN ('comma separated category ids')
이 잘 작동 .. 아래 샘플 쿼리를 사용하여 데이터베이스를 조회 할 수 있습니다.
내 질문은 항목에 직접 할당되지 않은 경우에도 최상위 카테고리 아래의 모든 항목을 볼 수 있습니까? 예를 들어 사용자가 위의 가구를 선택한 경우 하위 카테고리에 속한 모든 항목이 나열됩니다 (ItemCategory에는 레코드가 없습니다)?
데이터 테이블이나 쿼리에 필요한 수정안을 작성하는 데 열어 두었습니다. 해결책을 제안하십시오. 고맙습니다. 재귀와
순수 MySQL 솔루션을 원하십니까, 아니면 PHP/MySQL 솔루션으로 충분합니까? – GordyD
PHP와 MySQL은 내가 더 잘 적응할 수 있다고 말한다. thx – Kay