gpt4 book ai didi

mysql - 如何使用 MySQL 连接两个具有相同复合键的表,如果不在 T1 中,则使用 T2 中的值

转载 作者:行者123 更新时间:2023-11-29 05:31:07 25 4
gpt4 key购买 nike

我有两个具有相同列名和相同复合主键的表。两个表的复合主键是 id + year。我想始终使用表 T1 中的数据,如果表 T2 中存在 id + 年份,那么它不在表 T1 中,我希望它也被返回。

这是我的表格

T1

id  |  year  |  cost
----+--------+-------
1 | 2012 | 1.01
2 | 2012 | 1.02
2 | 2013 | 1.03

T2

id  |  year  |  cost
----+--------+-------
1 | 2012 | 2.01
2 | 2013 | 2.02
3 | 2013 | 2.03

我想得到:

id  |  year  |  cost
----+--------+-------
1 | 2012 | 1.01
2 | 2013 | 1.02
2 | 2013 | 1.03
3 | 2013 | 2.03

这显然是错误的,但我试过了:

SELECT
T1.id,
T1.year,
T1.cost
FROM employee_cost AS T1
INNER JOIN (select
employee_cost_historic.id,
employee_cost_historic.year,
employee_cost_historic.cost
from employee_cost_historic) AS T2
ON T1.id = T2.id
AND T1.year = T2.year

最佳答案

或者使用 LEFT JOIN 和 IS NULL 的另一个选项:

SELECT T1.Id, T1.Year, T1.Code
FROM T1
UNION
SELECT T2.Id, T2.Year, T2.Code
FROM T2
LEFT JOIN T1 ON T1.Id = T2.Id AND T1.Year = T2.Year
WHERE T1.Id IS NULL

祝你好运。

关于mysql - 如何使用 MySQL 连接两个具有相同复合键的表,如果不在 T1 中,则使用 T2 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14633253/

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