gpt4 book ai didi

mysql - 仅当记录加入时才进行内连接

转载 作者:行者123 更新时间:2023-11-29 10:34:17 25 4
gpt4 key购买 nike

我有两张 table 想要加入。我想按特定日期(CreateDate)内部联接记录。我想要的是当没有任何东西可以连接时不记录。我通过名称字段加入。对于特定的日期 (CreateDate),两个表中的名称应有 1:1 的记录。如果不是,我不想从第一个或第二个表中获取独立记录。下面的例子来进行查看。

for all tables:
Id - PK/AI
Name - varchar
FieldX/FieldY - varchar
CreateDate - Datetime

表1

ID | Name | FieldX | CreateDate

表2

ID | Name | FieldY | CreateDate

表3

ID | Name | FieldX | FIeldY | CreateDate

示例:

表1:

1  John  value10  2017-09-03
2 Lili value20 2017-09-03
3 John value30 2017-10-12
4 Lili value40 2017-10-12

表2:

1  John  value50  2017-09-03
2 Lili value60 2017-09-03
3 John value70 2017-10-12
4 Lili value80 2017-04-01

现在,当我说我想加入2017-09-03时,这应该是最终结果

表3:

John  value10  value50  2017-09-03
Lili value20 value60 2017-09-03

日期:2017-10-12请注意,当天表 2 中没有 Lili 的记录意味着没有记录(反之亦然,如果不在表 1 中并且在表 2 中相同情况 - 我不想记录)

表3:

John  value30  value70  2017-10-12

到目前为止我所拥有的是:

INSERT INTO Table3 (Name, FieldX, FieldY, CreateDate)
SELECT T1.Name, T1.FieldX, T2.FieldY, T1.CreateDate FROM Table1 As T1
INNER JOIN Table2 As T2 ON T1.Name=T2.Name
WHERE T1.CreateDate = '2017-10-12'

但是出了点问题,我没有得到正确的结果。谁能帮我解决我所缺少的东西?

最佳答案

如果我没有误解你的问题,你希望这两个表记录都按你提供的日期进行过滤。在这种情况下,您也应该在第二个表的 WHERE 中添加相同的条件。

像这样:

INSERT INTO Table3 (Name, FieldX, FieldY, CreateDate)
SELECT T1.Name, T1.FieldX, T2.FieldY, T1.CreateDate FROM Table1 As T1
INNER JOIN Table2 As T2 ON T1.Name=T2.Name
WHERE T1.CreateDate = '2017-10-12' AND T2.CreateDate = '2017-10-12'

注意 WHERE 子句中的 AND T2.CreateDate = '2017-10-12'

这似乎按照我测试时所描述的方式工作。

关于mysql - 仅当记录加入时才进行内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46761167/

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