SQL INSERT INTO语句..错误,我对SQL很新

时间:2014-09-13 04:40:51

标签: mysql sql select insert where

我到处寻找答案,找不到任何人,所以我已经开始自己发帖了。这是一个大学任务。我正在使用HeidiSQL。

这是我的代码

INSERT INTO 
loan(patronCode,bookCode,loanDate,dueDate)
VALUES 
(
SELECT
    patron.patronCode
WHERE
    patron.fname='Jacob' AND patron.lname='Simmons', 
SELECT
    book.bookCode
WHERE
    book.bookTitle='The Agony And The Empathy',
'2014-09-10',
'2014-10-01'
),
(
SELECT
    patron.patronCode
WHERE
    patron.fname='Jacob' AND patron.lname='Simmons', 
SELECT
    book.bookCode
WHERE
    book.bookTitle='Kevin Rudd: The Biography',
'2014-09-10',
'2014-10-01'
)
FROM

loan
INNER JOIN patron 
  ON loan.patronCode=patron.patronCode
INNER JOIN book
 ON loan.bookCode=book.bookCode;

这是我的错误消息:

  

SQL错误(1064):SQL synstax中有错误;检查与您的MySQL服务器版本对应的手册,以便在#palect.patronCode附近使用正确的语法   哪里   patron.fname ='雅各'和patron.lname =' Si'在第5行

2 个答案:

答案 0 :(得分:1)

insert语句需要采用以下形式:

INSERT INTO TABLENAME(FIELDNAME1, FIELDNAME2...)
VALUES('HARDCODED_VALUE1', 'HARDCODED_VALUE2'...)

您已将此与带有select语句的插入逻辑混合在一起。看起来像这样:

INSERT INTO TABLENAME(FIELDNAME1, FIELDNAME2...)
SELECT Column1, Column2...
FROM TABLENAME

这里有2个不同的插页。也许他们可以结合更多的信息。另外,你没有说明patronbook是如何加入的,可能它们不是,所以我已经离开了联接。

这是第一个,第二个可以在它之后形成图案。

INSERT INTO loan(patronCode,bookCode,loanDate,dueDate)
SELECT patron.patronCode,book.bookCode,'2014-09-10','2014-10-01'
FROM patron, book
WHERE
  patron.fname='Jacob' AND patron.lname='Simmons'
  and book.bookTitle='The Agony And The Empathy'

答案 1 :(得分:0)

我相信SELECT语句的语法是:

SELECT patronCode FROM tablename WHERE ....