나는 샘플 데이터가mysql에서 parent_id의 값을 가져 오는 방법은 무엇입니까?
game(id, name)
1 | Avatar
2 | Angry Bids
brand(id, parent_id, name)
1 | 0 | Apple
2 | 0 | Samsung
3 | 1 | Iphone 4
4 | 2 | Galaxy Tab
game_brand(game_id, brand_id)
1 | 4
2 | 3
그리고 쿼리
SELECT game.name,
game_brand.brand_id,
(SELECT brand.parent_id
FROM brand AS brand
WHERE brand.brand_id = game_brand.brand_id) AS brand_father_id
FROM game AS game
LEFT JOIN game_brand AS game_brand
ON game_brand.game_id = game.id
WHERE game.id = 2
및 결과 :
name | brand_id | brand_father_id
Angry Bids | 3 | 1
brand_id
, brand_father_id
에서 값을 얻는 방법 예 :
game | brand | brand parent
Angry Bids | Iphone 4 | Apple
좋은 질문이지만 예제 모델에 결함이 있습니다. 내가 말할 수있는 바에 따르면, 게임은 "부모 브랜드"와 직접적인 관계를 갖지 않을 것이며, "아동 브랜드"가 독자적으로 자녀를 가질 수도있는 것으로 보이지 않습니다. 이 경우 "상위 ID"와 모든 브랜드를 하나의 테이블에 포함시키는 것이 실제 가치가 없습니다. 대신, 부모 ID를 가진 "제조업체"또는 "회사"테이블을 갖는 것이 더 합리적 일 것입니다. 그러면 쿼리가 훨씬 간단 해지고 값 비싼 서브 쿼리가 필요하지 않게됩니다. (내가 말했듯이 이것은 당신의 모범 모델을 기반으로합니다. 좋은 질문입니다.) – Anthony