gpt4 book ai didi

MySQL UNION 查询,不同的 ID

转载 作者:行者123 更新时间:2023-11-30 23:25:05 24 4
gpt4 key购买 nike

我有两个包含(ID,值)的表。 ID 可以在一个或两个表中找到。我需要一个包含所有唯一 ID 及其值的记录集;如果 ID 出现在两个表中,我需要表 2 中的值。

目前我有这个查询:

SELECT * FROM
(SELECT * FROM table2 UNION SELECT * FROM table1) as temp
GROUP BY id

这似乎有效。然而——

  1. 如果 ID 在两个表中,这是否保证从 table2 返回值?

  2. 如果不行,我该怎么办?

  3. 无论如何,有没有更好的方法呢?

最佳答案

试一试

SELECT  a.*
FROM
(
SELECT *, 1 AS TB FROM table1 -- assuming you have many columns
UNION ALL
SELECT *, 2 AS TB FROM table2
) a INNER JOIN
(
SELECT ID, MAX(TB) maxTB
FROM
(
SELECT ID, 1 AS TB FROM table1
UNION ALL
SELECT ID, 2 AS TB FROM table2
) s
GROUP BY ID
) b ON a.ID = b.ID AND
a.tb = b.maxTB

关于MySQL UNION 查询,不同的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13754595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com