子查询在php中返回超过1行

时间:2013-04-21 17:29:05

标签: php mysql

INSERT INTO orders( Copy_ID, CustID ) 
VALUES (
(

SELECT Copy_ID
FROM cart
), (

SELECT c.Cust_ID
FROM customers AS c, accounts AS a, cart AS ca
WHERE c.Cust_ID = a.Cust_ID
AND a.Username = ca.Customer
)
)

我想通过php运行此查询,但mysql返回的行数超过1行

2 个答案:

答案 0 :(得分:0)

因为你在做什么

SELECT Copy_ID
FROM cart

查询返回Copy_ID中存储的cart的所有值,同时,下一个查询也返回一个集合。

MySQL没有找到应该插入orders表的一对值。 您必须查询一个查询,其中INSERT将一些特定的值集合到表中。

答案 1 :(得分:0)

请改为尝试:

INSERT INTO `orders` (`Copy_ID`,`Cust_ID`)
    SELECT `cart`.`CopyID`, `customers`.`CustID`
        FROM `customers`
        JOIN `accounts` USING (`Cust_ID`)
        JOIN `cart` ON `accounts`.`Username`=`cart`.`Customer`