MySQL的。如何使用自我加入

MySQL的。如何使用自我加入,第1张

MySQL的。如何使用自我加入

你好亲密!

因为您说的是显示A的国家和年份,并限制了

A. Country
土耳其,所以您将只看到土耳其。您需要将selects更改为
B.country
and
B.year
或将where子句更改为
B.country

这是使用交叉联接的,表中的记录越多,交叉联接的速度就会越慢。

SELECT DISTINCT b.Country, b.Year FROM table1 AS a,      table1 AS b WHERe a.Year=b.Year   and a.Country='Turkey';

可以写为…,并且可能具有相同的执行计划。

SELECt DISTINCT b.Country, b.Year FROM table1 AS a CROSS JOIN table1 AS b WHERe a.Year=b.Year   and a.Country='Turkey';

或这使用了INNER JOIN,它限制了引擎必须完成的工作,并且不会遭受交叉联接可能导致的性能下降。

SELECt DISTINCT a.Country, a.Year FROM table1 AS a INNER JOIN table1 AS b    on a.Year=b.Year   and b.Country='Turkey';

为什么:

考虑一下AB发生联接时SQL引擎将做什么

+------------+------+--------+------------+------+--------+| A.Country  | Rank |  Year  | B.Country  | Rank |  Year  |+------------+------+--------+------------+------+--------+|France      |  55  |  2000  |France      |  55  |  2000  |+------------+------+--------+------------+------+--------+|Canada      |  30  |  2000  |France      |  55  |  2000  |+------------+------+--------+------------+------+--------+ |Turkey      |  78  |  2000  |France      |  55  |  2000  |+------------+------+--------+------------+------+--------+ |France      |  55  |  2000  |Canada      |  30  |  2000  |+------------+------+--------+------------+------+--------+|Canada      |  30  |  2000  |Canada      |  30  |  2000  |+------------+------+--------+------------+------+--------+ |Turkey      |  78  |  2000  |Canada      |  30  |  2000  |+------------+------+--------+------------+------+--------+ |France      |  55  |  2000  |Turkey      |  78  |  2000  |+------------+------+--------+------------+------+--------+|Canada      |  30  |  2000  |Turkey      |  78  |  2000  |+------------+------+--------+------------+------+--------+ |Turkey      |  78  |  2000  |Turkey      |  78  |  2000  |+------------+------+--------+------------+------+--------+

因此,当您说展示广告

A.Country
以及土耳其
A.Year
在哪里时
A.Country
,您可以看到它可以返回的全部是土耳其(由于唯一的1条记录)

但是,如果您选择的

B.Country
是土耳其并展示
A.Country
,您将获得法国,加拿大和土耳其!



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5005327.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存