gpt4 book ai didi

sql - SQL内部联接中的“赞”运算符

转载 作者:行者123 更新时间:2023-12-03 21:04:58 27 4
gpt4 key购买 nike

使用Sequel Pro,我有以下两个表:

Table1

Name Year x y
John Smith 2010 10 12
Adam Jones 2010 8 13
John Smith 2011 7 15
Adam Jones 2011 9 14
etc.




Table2

Name Year z
Smith John Smith John 2010 27
Jones Adam Jones Adam 2010 25
Smith John Smith John 2011 29
Jones Adam Jones Adam 2011 21
etc.


基本上,表2中的名称是相同的,只是姓氏和名字被切换,然后重复一次。因此,在表2的名称中找到表1中的名称(在“史密斯·约翰·史密斯约翰”中找到“约翰·史密斯”)。我想执行一个内部联接并将Table2的z值连接到Table1的其他值,并得到如下所示的内容:

Name       x     y     z
John Smith 10 12 27
Adam Jones 8 13 25


为此,我运行了以下查询:

Select Table1.*, Table2.z
From Table1
Inner join Table2
On Table1.Name like "%Table2.Name%" and Table1.Year=Table2.Year


但是我将其作为输出:

Name  Year  x  y  z


就是这样。我得到了标题,但没有任何行。我不知道我在做什么错...我怀疑这可能与我使用like运算符的方式有关,但我不知道。任何帮助将非常感激。

最佳答案

除了一些奇怪的数据模型,您已经在LIKE部分中翻转了表(table1.name应该是table2.name的一部分,而不是相反),并且需要将百分数添加到值,而不是字段的名称,这意味着不引用名称;

SELECT table1.*, table2.z
FROM table1
INNER JOIN table2
ON table2.name LIKE CONCAT('%', table1.name, '%')
AND table1.year = table2.year


An SQLfiddle to test with

关于sql - SQL内部联接中的“赞”运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23276344/

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