如何在mysql中具有外键属性的表中插入新记录

时间:2018-02-03 13:50:36

标签: php mysql sql

此声明有什么问题,因为customers表只有一条记录

INSERT INTO CART (Cartid,custid,Pid)
VALUES ('2',SELECT(custid from CUSTOMERS), SELECT (Pid from Products where Pname ='shirts'))

2 个答案:

答案 0 :(得分:0)

正确的语法是:

INSERT INTO CART (Cartid, custid, Pid)
    VALUES (2,
            (SELECT custid FROM CUSTOMERS LIMIT 1),
            (SELECT Pid FROM Products WHERE Pname = 'shirts' LIMIT 1)
           );

你的括号在错误的地方。

注意:

  • 我添加了LIMIT只是为了强制返回一行。
  • 我删除了'2'周围的单引号,因为ID通常是数字。
  • 你可能不应该插入id;它应该是一个自动增量列。

答案 1 :(得分:0)

确保购物车表ID是主键和auto_increment。获取客户ID并存储在变量中。你可以尝试类似这样的东西

INSERT INTO CART (Cartid,custid,Pid) VALUES ('', SELECT custid from CUSTOMERS  WHERE custid = '$customer_id'),(SELECT Pid FROM Products WHERE Pname = 'shirts' LIMIT 1));