如何插入必须从select语句中获取信息的多个值或记录。这不起作用。
INSERT INTO marriedcouples (male,female) VALUES (
(SELECT id FROM men WHERE username='brad',
SELECT id FROM women WHERE username='jennifer')
(SELECT id FROM men WHERE username='ken',
SELECT id FROM women WHERE username='barbie'))
假设我有表格:
男性(身份证,姓名),女性(身份证,姓名),夫妻(身份证,男性,女性)
等
谢谢, 丹
答案 0 :(得分:4)
Insert marriedcouples( male, female )
Select M.id, W.id
From Men As M
Cross Join Women As W
Where ( M.username = 'brad' And W.username = 'jennifer' )
Or ( M.username = 'ken' And W.username = 'barbie' )
<强>加成强>
在评论中,您具体询问了原始查询的问题。首先,您可以使用原始方法:
Insert marriedcouples( male, female )
Select ( Select Id From men Where username = 'brad' )
, ( Select Id From women Where username = 'jennifer' )
Union All
Select ( Select Id From men Where username = 'ken' )
, ( Select Id From women Where username = 'barbie' )
请注意,每个值都用括号括起来作为自己的封装子查询。其次,请注意我使用Union All
指令允许我堆叠两个查询并给我两行。第三,请注意我并没有尝试将Values指令与子查询结合使用。您可以使用Values子句列出值,也可以使用Select语句,但不能同时使用两者。显然,这种四个子查询的方法效果不佳,但它有助于理解语法的细分。