mysql - 左连接两个表,如果两个表中都存在值,则保留右表中的最新值

标签 mysql

我正在尝试左连接两个表。这部分很简单。

我有两个表:产品和产品更新

产品表如下所示

id | productname | description 

产品更新表如下所示

id | productname | descriptionupdate 

我过于简化了这个例子。还有更多专栏,不仅仅是这些。

SELECT productname, description 
FROM product 
LEFT JOIN productupdate ON 
product.id =  productupdate.id WHERE id = ?

我想要实现的是连接两个表,如果右表(产品更新)中存在描述更新,则仅保留产品更新中的描述更新,并且不应保留产品表中的描述。

如果我使用左连接,右表中的所有内容都会添加到左表中,并且一个产品将有多个描述。

我应该如何编写查询。

最佳答案

连接表并按 productupdate 降序排列日期列,仅获取第一行:

SELECT 
  p.productname, 
  u.description
FROM product p LEFT JOIN productupdate u 
ON p.id =  u.id 
WHERE p.id = ?
ORDER BY u.datecolumn DESC 
LIMIT 1

关于mysql - 左连接两个表,如果两个表中都存在值,则保留右表中的最新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56611410/

相关文章:

mysql - 使用 TLS 与 MySQL 连接字符串连接不良

mysql - 使用表上的索引时出现问题

python - %d 格式为数字,不是字符串

mysql - 在同一个表中左连接mysql查询

php - 使用 php 从存储过程中获取列名以在 html 表中显示

mysql - Wireshark 我怎么知道数据包是否加密?

php - 存储内容,例如 MediaWiki 中的页面

mysql - INSERT ... SELECT 语法不会插入所有行

php - 如何显示存储在数据库中的某些评论

mysql - 分组时行索引不正确