php - SQL:如果在另一个表中找不到给定的 ID,则将值插入一个表中(使用单个查询)

标签 php mysql sql insertion

我在 MySQL 服务器上有两个表:T1 和 T2。 ID 是 T1 的主键,ID 是 T2 的外键。

我的问题是:如果我知道与这些值(值)相关的 ID,但仅在 T1 中找不到该 ID 的情况下,如何在 T2 中插入一些值(使用单个查询)?

T1
id,c1,c2,c3,many other columns
example id:'fry54632' //yes, it is not numerical if matters

T2
id,cc1,cc2,cc3,few other columns
example id:'fry54632', cc1,cc2,cc3... have nothing in common with c1,c2,c3

myDataSource:
countains id, which is same for T1 and T2 and contains some other data that should be
inserted in T2 but not in T1

我想我应该使用这样的东西,但我不确定:

insert into t2 (col1,col2,col3)
select 'const1','const2','const3'
from t1 where not exists 
(select id from t1 t --...t1, I mean: insert 'const1'...and etc strings in t2 if
--specified ID was not found in t1}
where t.id='someID but not t2.id')

最佳答案

INSERT INTO T1 (ID, Col1, Col2)
SELECT ISNULL(T1.ID,-1), ISNULL(T1.Col1,'Arbatory Value'), ISNULL(T1.Col2,'Arbatory Value')
FROM T2
LEFT OUTER JOIN T1
ON T2.ID = T1.ID
WHERE T1.ID IS NULL

关于php - SQL:如果在另一个表中找不到给定的 ID,则将值插入一个表中(使用单个查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12750818/

相关文章:

php - 使用 PHP/MYSQL 填充 HTML 下拉列表

php - 从服务器检索的JSON对象上的SearchView

mysql - 将字符串连接到 SELECT * MySql

sql - 按其他列的特定规则选择行值对

php - 使用 laravel 删除功能删除记录时遇到问题

php - 如何让 PHP 查找包含某些内容的文件名

php - 查询执行需要时间

更新语句中的 MySQL 行计数器

MySQL:什么是临时表?

sql - 查找所有子项完全匹配的父项 ID