Ho creato 3 diverse tabelle e la codifica perché èPerché questo codice SQL non funziona?
CREATE TABLE `shirt` (
`id` int(11) not null,
`name` varchar(32),
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `shirt` (`id`, `name`) VALUES
('1', 'vneck'),
('2', 'scoop neck');
CREATE TABLE `shirt_size` (
`shirtId` int(11) not null,
`sizeId` int(11) not null,
PRIMARY KEY (`shirtId`,`sizeId`),
KEY `sizeId` (`sizeId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `shirt_size` (`shirtId`, `sizeId`) VALUES
('1', '2'),
('1', '3'),
('1', '4'),
('1', '5'),
('2', '1'),
('2', '2'),
('2', '3'),
('2', '4'),
('2', '5'),
('2', '6'),
('2', '7');
CREATE TABLE `size` (
`id` int(11) not null,
`name` varchar(4),
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `size` (`id`, `name`) VALUES
('1', 'xs'),
('2', 's'),
('3', 'm'),
('4', 'l'),
('5', '1x'),
('6', '2x'),
('7', '3x');
e sto interrogazione con questo
SELECT shirt.name, size.name
FROM shirt
INNER JOIN
shirt_size ON shirt_size.shirtId = shirt.id
INNER JOIN
size ON size.id = shirt_size.sizeId
ma la tabella che risulta solo mostra il nome della camicia, ho bisogno la colonna delle taglie per mostrarsi anche sullo schermo. Nella parte FROM ho inserito shirt, size
ma si è verificato un errore. Guardando più in là ho visto molte persone solo mettere il nome del primo tavolo nella parte FROM. Non vedo come si supponga di rappresentare la colonna size.name
. Che cosa sto facendo di sbagliato?
GRAZIE !!!! .. ho capito ieri sera, ma questo è la risposta giusta anche se così l'ho ancora segnato. :) – Optiq