24

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

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

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

4

3 回答 3

59

试试这个查询:

     INSERT INTO C (aID, bID) 
     SELECT A.ID, B.ID 
     FROM A, B 
     WHERE A.Name='Me'
     AND B.Class='Math';
于 2012-11-06T04:43:14.187 回答
7

另一种方法可以是

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';
于 2015-11-21T11:45:56.713 回答
3

Name假设给定的and的每个表中只有一个值Class,最简单的方法就是将子查询包含在 中()

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

dbfiddle 上的演示

于 2019-04-30T01:42:51.733 回答