【问题标题】:How would you create a sql query that uses a merge join?您将如何创建使用合并连接的 sql 查询?
【发布时间】:2022-01-17 18:36:08
【问题描述】:

编写一个可以生成此查询计划的 SQL 查询。

CREATE TABLE Slot(
    sid int PRIMARY KEY,
    wall VARCHAR(30),
    x float,
    y float
)

CREATE TABLE Placement(
    rid int REFERENCES Route(rid),
    hid int REFERENCES Hold(hid),
    sid int REFERENCES Slot(sid),
    PRIMARY KEY(rid, hid, sid)
)

这个sql查询能产生这个计划吗?

Select *
FROM Placement P, Slot S
WHERE P.sid = S.sid

【问题讨论】:

  • SQL 是一种 声明性 语言,您描述的是 what 您想要的,而不是 如何。话虽如此,通常,当有大量行被连接在 排序的键上时,优化器将选择合并连接。
  • *旁注,见Bad habbits
  • 请仔细检查您的 DBMS 名称 - 您的 SQL 代码对于 MySQL 是错误的。
  • @Akina 你什么意思?
  • 我的意思是计划截图和 SQL 代码看起来都像是特定于 MS SQL (SQL Server),而不是 MySQL,它是完全不同的 DBMS...

标签: mysql sql


【解决方案1】:

做一个FROM 表然后JOIN anotherTable 然后ON 之后的条件

Select *
FROM Placement P
INNER JOIN Slot S
ON P.sid = S.sid

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多