从多个表中插入表

时间:2012-11-06 04:39:54

标签: mysql sql

嘿所以我有一个Junction表连接两个不相关的表。这两个表都有ID个。我需要使用具有不同值的ID从每个表格中选择WHERE,例如,我就是这样看的:

INSERT INTO c (aID, bID)
VALUES (SELECT a.ID WHERE a.Name="Me", SELECT b.ID WHERE b.Class="Math");

我见过的所有示例都使用join语句,但这两个表有一个共同的值,在这种情况下它们没有。

3 个答案:

答案 0 :(得分:42)

尝试此查询:

     INSERT INTO C (aID, bID) 
     SELECT A.ID, B.ID 
     FROM A, B 
     WHERE A.Name='Me'
     AND B.Class='Math';

答案 1 :(得分:3)

另一种方式可以是

INSERT INTO c (aID, bID)
SELECT 
   (SELECT A.id FROM TableA A WHERE A.names = 'sometext'), 
   B.id FROM TableB B 
WHERE 
   B.x_name ='othertext';

答案 2 :(得分:1)

假设给定的NameClass在每个表中只有一个值,最简单的方法就是将子查询括在()中:

INSERT INTO c VALUES (
(SELECT ID from a where Name='Me'),
(SELECT ID from b where Class ='Math')
)

Demo on dbfiddle