嗨,我有一个连接两个不相关表的联接表。这两个表都有ID
。我需要使用不同的值使用WHERE
从每个表中选择ID
,例如:
INSERT INTO c (aID, bID)
VALUES (SELECT a.ID WHERE a.Name="Me", SELECT b.ID WHERE b.Class="Math");
我看到的所有示例都使用了 join
语句,但是这两个表没有一个共同的值,在这种情况下就不行。
尝试使用这个查询:
INSERT INTO C (aID, bID)
SELECT A.ID, B.ID
FROM A, B
WHERE A.Name='Me'
AND B.Class='Math';
A
是你的表格,所以我使用了伪表名TableA
并使用alias
a引用了TableA。如果你的表格是A, B和C
,那么使用INSERT INTO C...FROM A, B...
。我已经更新了答案。 - Yogendra Singh另一种方法可以是
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';
Name
和Class
在每个表中只有一个值,最简单的方法是将子查询用()
括起来:INSERT INTO c VALUES (
(SELECT ID from a where Name='Me'),
(SELECT ID from b where Class ='Math')
)
SELECT ... INTO
吗? - Raptor