我想要什么:我想输入作者 ID,但我只得到作者姓名。来自表格作者。那么如何在下面的查询中获取作者 ID??
INSERT INTO book (title, isbn, author_id) VALUES('" + BookTitle.Text.ToString() + "', '" + BookIsbn.Text.ToString() + "', '(SELECT id FROM author WHERE first_name = '" + BookAuthor.Text.ToString() + "')')";
错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Marijn')')' at line 1
我希望我说清楚我想要什么。
谢谢!
最佳答案
您不应该将第二个 SELECT 语句放在单引号中(MySQL 将其解释为字符串)。
"INSERT INTO book (title, isbn, author_id)
VALUES ('" + BookTitle.Text.ToString() + "', '" + BookIsbn.Text.ToString() + "',
(SELECT id FROM author WHERE first_name = '" + BookAuthor.Text.ToString() + "'))"
PS 请注意,您将数据插入数据库的方法使其非常容易受到注入(inject)攻击。
关于c# - 奇怪的查询。从另一个表中获取 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12596920/