[Resolvido] Relação N para N: Buscar apenas os veículos que conte
Estou criando uma busca de veículos no meu site. O usuário poderá filtar esta busca por acessórios. Por exemplo.
João acessa a página de busca e marca que quer ver os carros que tenham vidro elétrico e trava elétrica.
A estrutura das minhas tabelas é a seguinte:
CREATE TABLE `veiculos` (
`id` INT NOT NULL PRIMARY KEY,
`placa` VARCHAR(8)
);
CREATE TABLE `acessorios` (
`id` INT NOT NULL PRIMARY KEY,
`nome` VARCHAR(255)
);
CREATE TABLE `acessoriosveiculos` (
`id` INT NOT NULL PRIMARY KEY,
`veiculoid` INT NOT NULL,
`acessorioid` INT NOT NULL,
FOREIGN KEY (veiculoid) REFERENCES veiculos(id),
FOREIGN KEY (acessorioid) REFERENCES acessorios(id)
);
Um carro pode ter N acessórios e um acessório pode fazer parte de N carros.
Já tentei de várias formas mas não consigo de jeito nenhum:
SELECT veiculos.*
FROM veiculos
INNER JOIN acessoriosveiculos ON acessoriosveiculos.veiculoid = veiculos.id
WHERE (acessoriosveiculos.acessorioid = 1 and acessoriosveiculos.acessorioid = 2);
Alguém pode me ajudar a montar esta query? Valeu.
Discussão (8)
Carregando comentários...