gpt4 book ai didi

mysql - 隐式连接与否?

转载 作者:行者123 更新时间:2023-12-01 23:36:23 25 4
gpt4 key购买 nike

我对黄色代码(如下)中的这是什么样的连接感到有点困惑。这对我来说似乎是一个隐式连接,但我认为我们不使用“ON”而是使用“WHERE”来指定我们使用哪个列将两个表连接在一起。但是在这里,它看起来不像有“WHERE”。我能想到的唯一可能的原因是因为CTE(seat_count)中只有一个数字,那么我不需要指定我使用的是哪一列?

万一有人想知道这个问题:

enter image description here

QUERY(带标签的图片):

enter image description here

QUERY(文本):

WITH seat_count AS(
SELECT COUNT(*) AS counts
FROM seat)
SELECT
(CASE
WHEN MOD(id,2)!= 0 AND counts != id THEN id+1
WHEN MOD(id,2)!= 0 AND counts = id THEN id
ELSE id-1
END) AS id,
student
FROM seat, seat_count
ORDER BY id ASC

最佳答案

连接 FROM seat, seat_count 等同于 FROM seat CROSS JOIN seat_count 这意味着在 WHERE 子句中没有进一步的条件,它将一个表的每一行匹配到每个另一张表的行。使用 CROSS JOIN 语法时,没有 ON 子句。

在示例中,CTE SELECT COUNT(*) AS counts FROM seat 一定会返回一行。交叉连接最终将 seat 中的 N 行连接到 seat_count 中的 1 行。

因此它是一个交叉连接,但它不会导致结果中出现任何令人困惑的行乘法。

关于mysql - 隐式连接与否?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65544497/

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