두 테이블 사이에 다 대다 관계가 있으며이를 관리하기 위해 피벗 테이블을 사용하고 있습니다. 다음 구조는 다음피벗을 사용하여 여러 테이블에서 MySQL을 선택하십시오.
- 표 1 : 자동차 (car_id, ...)
- 표 2 : 브랜드 (brand_id, ...)
- 피봇 테이블 : cars_brands (car_id, brand_id, units, discount)
하나의 쿼리 만 사용하여 특정 브랜드 PLUS의 자동차의 모든 필드를 선택하려고합니다. 단위와 할인 (피벗 테이블의 두 필드 ...)
내 시도 :
SELECT c.*, cb.units, cb.discount
FROM (cars c, cars_brands cb)
INNER JOIN cb ON c.car_id = cb.car_id
WHERE cb.brand_id = 1
ORDER BY c.car_id asc
가 나는
#1066 - Not unique table/alias: 'cb'
MySQL의 오류를 얻고있다.
도움을 주시면 감사하겠습니다.
미리 감사드립니다.
는SELECT c.*, cb.units. cb.discount
FROM cars AS c
JOIN car_brands as cb ON cb.car_id = c.car_id
JOIN brands AS b ON b.brand_id = cb.brand_id
WHERE b.brand_name = 'Audi'
ORDER BY c.car_id ASC
어딘가에 '브랜드'테이블에 가입해야합니다. 'Audi'는 정말로'brand.id'가 아니라'brand_id'입니까? – Barmar
당신의 쿼리가 완전하지 않다는 것을 알았습니다. 내부 조인은 테이블 이름을 잃어 버렸습니다. 동일한 테이블을 두 번 사용한다면 'cars_brands cb'와'cars_brands cb1'와 같은 고유 한 별칭을 부여해야합니다. –