我正在编写一个查询以将数据插入表中。此查询必须从两个单独的表中选择某些 id 以及传入的参数。我能够使用 CROSS JOIN 从两个单独的表中获取数据。但是,我不确定如何传入字符串作为我的第三个参数。以下是我的发言:
INSERT INTO TABLE1 (T2_ID, T3_ID)
SELECT T2_ID, T3_ID
FROM (SELECT T2_ID FROM TABLE2 WHERE TABLE2.NAME = 'BOB') AS T1
CROSS JOIN(SELECT T3_ID FROM TABLE3 WHERE TABLE3.DATA = 'BLARGH') AS T2;
我从交叉连接中获取了所需的 ID,但我还需要传入一个字符串值参数。我该如何传递这个呢?预先感谢您。
最佳答案
您可以在选择中添加一个字符串:
INSERT INTO TABLE1 (T2_ID, T3_ID, <col>)
SELECT T2_ID, T3_ID, 'a string'
FROM (SELECT T2_ID FROM TABLE2
WHERE TABLE2.NAME = 'BOB') AS T1
CROSS JOIN(SELECT T3_ID
FROM TABLE3 WHERE TABLE3.DATA = 'BLARGH') AS T2;
严格来说,您不需要子选择:
INSERT INTO TABLE1 (T2_ID, T3_ID, <col>)
SELECT T2_ID, T3_ID, 'a string'
FROM TABLE2 AS T1
CROSS JOIN TABLE3 AS T2
WHERE T1.NAME = 'BOB'
AND T2.DATA = 'BLARGH'
关于mysql - 如何使用其他参数进行 SQL INSERT CROSS JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25368327/