我有一个这样的SQL语句:
INSERT INTO TABLE_3(TABLE_1ID, TABLE_2ID)
SELECT ID FROM TABLE_1 WHERE NAME = '..',
SELECT ID FROM TABLE_2 WHERE NAME = '..';
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我刚收到一个错误
声明...靠近"SELECT":语法错误.
那么如何正确地做到这一点?没有示例如何使用来自两个不同表的两个选项来处理此问题.
这可行:
INSERT INTO TABLE_1(NAME, AGE)
SELECT NAME, AGE FROM TABLE_2 WHERE ID = '..';
Run Code Online (Sandbox Code Playgroud)
你需要加入2个表,因为我不知道你的数据库结构,我会假设Name是2个表之间唯一的公共引用,如果不是这样,你实际上有更坚实的东西(比如实际的外键)然后你应该使用它.
INSERT INTO TABLE_3
(TABLE_1ID, TABLE_2ID)
SELECT TABLE_1.ID, TABLE_2.ID
FROM TABLE_1
JOIN TABLE_2 ON TABLE_1.NAME = TABLE_2.NAME
WHERE TABLE_1.NAME = '..'
Run Code Online (Sandbox Code Playgroud)
从您的评论中,似乎TABLE_2和TABLE_3之间没有关系,在这种情况下,您可以这样做:
INSERT INTO TABLE_3
(TABLE_1ID, TABLE_2ID)
SELECT (SELECT ID FROM TABLE_1 WHERE NAME = '..'),
(SELECT ID FROM TABLE_2 WHERE NAME = '..')
Run Code Online (Sandbox Code Playgroud)