J'ai deux tables:erreur Mysql 1111 dans une version de requête et d'erreur 1054 dans un autre
- livres: [isbn, BOOK_TITLE, éditeur, ...]
- inventaire: [isbn, date, num_changed]
Je veux retourner les titres de livres pour ceux qui sont en stock. J'ai essayé une jointure (requête 1) et ai obtenu l'erreur 1054, puis j'ai substitué la référence avec la valeur littérale et maintenant j'obtiens l'erreur 1111.
requête 1:
SELECT `books`.`isbn`, `books`.`book_title`, SUM(`inventory`.`numbers_changed`) AS `num`
FROM `books`
INNER JOIN `inventory` ON `books`.`isbn` = `inventory`.`isbn`
WHERE `books`.`publisher` LIKE '%pint%'
AND `num` > '0'
requête 2:
SELECT `books`.`isbn`, `books`.`book_title`, SUM(`inventory`.`numbers_changed`)
FROM `books`
INNER JOIN `inventory` ON `books`.`isbn` = `inventory`.`isbn`
WHERE `books`.`publisher` LIKE '%print%'
AND SUM(`inventory`.`numbers_changed`) > '0'
Quelle est la requête correcte à utiliser?
Modifier
Voici les créer des requêtes de table:
CREATE TABLE IF NOT EXISTS `books` (
`isbn` varchar(30) CHARACTER SET ascii NOT NULL,
`book_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
`date_published` varchar(10) CHARACTER SET ascii NOT NULL,
`author` varchar(40) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
`translator` varchar(40) CHARACTER SET utf8 COLLATE utf8_persian_ci DEFAULT NULL,
`publisher` varchar(50) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
`ganre` varchar(50) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
`price` int(7) unsigned NOT NULL,
`cover_pic` int(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`isbn`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `inventory` (
`isbn` varchar(30) CHARACTER SET ascii NOT NULL,
`date` varchar(10) CHARACTER SET ascii NOT NULL,
`numbers_changed` int(5) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Ainsi, dans le cadre ci-dessus, si vous voulez obtenir des titres de livres avec un stock compte supérieur à 0, ce qui devrait vous faire? –
@Majid: Je dois commencer par mettre à jour la question avec les instructions CREATE TABLE pour les tables 'BOOKS' et' INVENTORY'. –