我到处寻找答案,却找不到任何人,所以只好自己发帖。这是大学的作业。我正在使用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 Error(1064):您的SQL synstax中有一个错误;请查看对应于MySQL服务器版本的手册,在“SELECT-patron.patronCode”附近找到正确的语法
哪里
5号线的patron.fname='Jacob'和patron.lname='Si'

最佳答案

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

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

您已经将其与insert和select语句的逻辑混合在一起。看起来是这样的:
INSERT INTO TABLENAME(FIELDNAME1, FIELDNAME2...)
SELECT Column1, Column2...
FROM TABLENAME

这里有两个不同的插页。也许他们可以结合更多的信息。另外,您没有指明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'

关于mysql - SQL INSERT INTO语句。。错误,我对SQL很陌生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25819880/

10-09 00:34