我到处寻找答案,找不到任何人,所以我已经开始自己发帖了。这是一个大学任务。我正在使用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行
答案 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个不同的插页。也许他们可以结合更多的信息。另外,你没有说明patron
和book
是如何加入的,可能它们不是,所以我已经离开了联接。
这是第一个,第二个可以在它之后形成图案。
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 ....