我想创建一个选择和插入查询,可以从Customers
表格name
和customer_number
以及Stock
表格中选择inven_code
和quant_left
。
第三个表名为sales
,其中没有任何内容。我想在sales表中插入上面的select查询的结果。
以下是表结构的样子:
客户表:
Name VARCHAR (50) customer_number CHAR (7) PRIMARY KEY
Jack Rafuse CUST123
Susan Jackson CUST456
股票表:
product_name VARCHAR(50) inven_code CHAR (6) PRIMARY KEY quant_left INT
baseballs 123456 6
bats 789101 3
销售表:
Id INT NOT NULL AUTO_INCREMENT
customer_number VARCHAR(50)
Inven_code CHAR (6)
quant_left INT
使用我所拥有的选择代码继承查询,但是它给出了错误:
$query = "INSERT INTO sales (customer_number, inven_code, quant_left)
SELECT customers.customer_number, stock.inven_code, stock.quant_left
FROM customers, stock
WHERE Customers.customer_number='CUST123' AND
Stock.inven.code='123456' AND
Stock.quant_left ='6' “;
$result = mysql_query($query, $link) or die(mysql_error($link));
这是我得到的错误:
您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第2行的“SELECT customers.customer_number,stock.inven_code,stock.quant_left”附近使用正确的语法
可以提供任何可以提供的帮助。
答案 0 :(得分:0)
如果我们假设您的选择查询有效,您可以在mysql控制台环境中单独测试它。尝试以下方法:
insert into sales select 0, customers.customer_number, stock.inven_code, stock.quant_left from ...
答案 1 :(得分:0)
问题不在您的查询中,但在您的PHP代码中,因为您的结束语不是正确的。
将“
替换为"
,如下所示:
<?php
$query = "INSERT INTO sales (customer_number, inven_code, quant_left)
SELECT C.customer_number, S.inven_code, S.quant_left
FROM customers C, stock S
WHERE C.customer_number='CUST123' AND
S.inven.code='123456' AND
S.quant_left ='6'";
$result = mysql_query($query, $link) or die(mysql_error($link));
?>
这就是我把你的桌子弄乱了#39;名称,以便代码可以更轻。此外,这只是使代码运行的一种方法,否则您必须知道不推荐使用mysql_ *。您需要使用mysqli_*或PDO以及prepared statements,以避免SQL injections。