【发布时间】:2020-03-29 16:04:47
【问题描述】:
对于我的问题,我不知道如何在另一个 SELECT(使用 MySQL)中使用 SELECT 函数。
单独,SELECT 工作(代码的所有部分)很好,但是当我输入完整代码时,PHPMyAdmin 说'子查询返回超过 1 行'。
完整代码是:
INSERT INTO `vente` (`Quantite`, `Année`, `Mois`, `Jour`, `ID_TypeEquipement`, `ID_Divinite`, `ID_Pouvoir`, `ID_Lieu`, `ID_DemiDieu`)
SELECT `_info_ventes_1er_siecle`.`Quantité`, `_info_ventes_1er_siecle`.`Année`, `_info_ventes_1er_siecle`.`Mois`, `_info_ventes_1er_siecle`.`Jour`
, (SELECT `ID`
FROM `typeequipement`
INNER JOIN `_info_ventes_1er_siecle`
ON `_info_ventes_1er_siecle`.`Objet` = `typeequipement`.`Denomination`)
, (SELECT `ID_Divinite`
FROM `mois`
INNER JOIN `_info_ventes_1er_siecle`
ON `_info_ventes_1er_siecle`.`Mois` = `mois`.`Nom`)
, (SELECT `ID`
FROM `pouvoir`
INNER JOIN `_info_ventes_1er_siecle`
ON `_info_ventes_1er_siecle`.`Pouvoir` = `pouvoir`.`Denomination`)
, (SELECT `ID_Lieu`
FROM `lieu`
INNER JOIN `_info_ventes_1er_siecle`
ON `_info_ventes_1er_siecle`.`Province` = `lieu`.`Province`
AND `_info_ventes_1er_siecle`.`Ville` = `lieu`.`Ville`)
, (SELECT `ID_Lieu`
FROM `lieu`
INNER JOIN `_info_ventes_1er_siecle`
ON `_info_ventes_1er_siecle`.`Ville` = `lieu`.`Ville`)
FROM `_info_ventes_1er_siecle`;
当我尝试这个时它会起作用:
SELECT `ID`
FROM `typeequipement`
INNER JOIN `_info_ventes_1er_siecle`
ON `_info_ventes_1er_siecle`.`Objet` = `typeequipement`.`Denomination`
或者这个:
SELECT `_info_ventes_1er_siecle`.`Quantité`, `_info_ventes_1er_siecle`.`Année`, `_info_ventes_1er_siecle`.`Mois`, `_info_ventes_1er_siecle`.`Jour`
所以错误只是当我添加“,(SELECT ...)”部分时。 大概是语法吧。老实说,我不知道,这就是我在这里的原因。
谢谢,我希望我能在截止日期前修复这个错误。 ;)
【问题讨论】:
-
何不...我尝试添加一个“嗨”,但网站不想添加这个。
-
在每个子查询上尝试
LIMIT 1,因为您当前的子查询返回超过 1 个结果 -
@LouisMargot。 . .错误似乎很明显。你不明白错误的哪一部分?
-
在没有插入的情况下进行选择,看看它是否按您希望的那样运行,但我不这么认为。
-
(至少)其中一个子查询返回不止一行,正如错误清楚地表明的那样。检查哪些/哪些并更正它/它们以仅返回最多一行。