MySQL:如果 t1.row1 = t1.row2 插入 t2

标签 mysql

我有三个表,t1t2t3

表 1 包括“列表”以及通过 ID 与列表关联的图像。它们都是通过查看类型

来识别的
id: 1
postId: NULL
type: listing

id: 2
postId: NULL
type: listing

id: 3
postId: 1
type: image

id: 4
postId: 1
type: image

id: 5
postId: 2
type: image

表 2 还包含列表和图像关联,如下所示:

id: 1
listingId: 1
type: imageasoc
imgId: 3

id: 2
listingId: 1
type: imageasoc
imgId: 4

id: 3
listingId: 2
type: imageasoc
imgId: 5

t1.idt1.postId匹配时,我想在t2中添加一个新行,其中将包含t1 .idt1.postId 行的 id,加上字符串“imageasoc”(如您将在上面的例子)

我有下面的代码,但我需要它变成 INSERT INTO 语句,我已经尝试过,但语法/格式总是错误的:(

UPDATE  t2
LEFT JOIN
        t1
ON      t1.id = t1.postId
SET     t2.listingId = t1.id, t2.type = 'imageasoc', t2.imgId = id of t1.postID 
WHERE   t1.type = 'image'

我希望我已经解释得足够多了,谢谢!

最佳答案

如果我理解正确,您可以使用 INSERT...SELECT 语句来执行此操作:

INSERT INTO t2(listingId, type, imgId)
SELECT t1.id, 'imageasoc', t1.postId
FROM t1
WHERE t1.id = t1.postId
AND t1.type = 'image';

关于MySQL:如果 t1.row1 = t1.row2 插入 t2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37866484/

相关文章:

C# - 使用 MySql 数据库填充 ComboBox 时出现意外结果

php - 如何使变量可从 AJAX/php 查询脚本中单击

php - 复选框或下拉筛选结果

php - 仅从完整的 MySql 数据库导出导入表

c# - Asp.NET MVC 应用程序上的 MySQLRoleProvider 错误但仅使用 SQLServer

mysql - 统计数据库中当前数据为最大日期的数据

php - 基于 PHP strstr 或 LIKE 的 SQL 命令

mysql - 具有动态输入的 WHERE 语句

mysql - 导入时修改 SQL Server 数据

mysql - 仅在自增 id 不等于 6 时才插入(例如)?