mysql - 如何使用其他参数进行 SQL INSERT CROSS JOIN

标签 mysql sql sql-server

我正在编写一个查询以将数据插入表中。此查询必须从两个单独的表中选择某些 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/

相关文章:

sql - 有什么办法可以用范围谓词停止索引搜索?

php - 您的 SQL 语法有误;查看与您的 MySQL 服务器对应的手册

sql-server - SSRS 中的自定义定时订阅计划

php - id 不是 auto_increment 并试图在行之间获取差异 mysql php

PHP mySQL - 你能返回一个带有数字索引的关联数组吗?

php - 更新不适用于外键上的 INNER JOIN

SQL Server : how to change data entry from VARCHAR to DATETIME?

mysql - 从 sql server 触发器更新 MySQl 链接服务器

php - php中如何获取结果数组

php - 无法将验证码数据插入mysql数据库