嘿所以我有一个连接两个无关表的连接表。这两个表都有ID。我需要使用具有不同值的WHERE从每个表中选择ID,例如这是我如何看待它。从多个表中插入表
INSERT INTO c (aID, bID)
VALUES (SELECT a.ID WHERE a.Name="Me", SELECT b.ID WHERE b.Class="Math");
我见过的所有例子都使用了连接语句,但是这两个表有一个共同的值,在这种情况下它们没有。
嘿所以我有一个连接两个无关表的连接表。这两个表都有ID。我需要使用具有不同值的WHERE从每个表中选择ID,例如这是我如何看待它。从多个表中插入表
INSERT INTO c (aID, bID)
VALUES (SELECT a.ID WHERE a.Name="Me", SELECT b.ID WHERE b.Class="Math");
我见过的所有例子都使用了连接语句,但是这两个表有一个共同的值,在这种情况下它们没有。
尝试以下:
INSERT INTO c (aID, bID)
SELECT a.ID, B.ID
FROM A, B
WHERE A.Name='Me'
AND B.Class='Math';
很酷的生病尝试它,但为什么“从表A”为什么不是“从一个” – ThingWings
@Kosmo:我不知道'A'是你的表格表,所以我使用了一个伪表名称作为TableA并引用TableA '别名'a。如果你的表是'A,B&C',那么就用'INSERT INTO C ... FROM A,B ...'。我更新了答案。 –
你是否想在另一个中找到ID?如果他们不相关,你怎么能把他们联系起来?暂时忘记插入组件,只需获取返回所需数据的SELECT语句即可。上面的答案会给你一个交叉连接的数据。即如果在A中有30个“我”记录,而在B中有50个“数学”记录,则会得到1,500条记录。你期望得到多少条记录,它们应该如何相互关联? –
另一种方式可以
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';
你尝试'SELECT ... INTO'? – Raptor