【发布时间】: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...