我已经创建了一个sql语句,我需要将其转换为使用explict连接运算符,以便所有比较常量子句和只比较常量子句都出现在查询的where子句中。
不过,我不知道该怎么做,有人能告诉我怎么做吗?以下是我所拥有的:
select S.sname
from P, J, S, SPJ
where P.pname = 'Bolt'
and J.city = 'London'
and P.p# = SPJ.p#
and J.j# = SPJ.j#
and S.s# = SPJ.s#;
最佳答案
如果我理解您的意思,您希望从sql89语法转换为内部连接。
看起来是这样的:
select
S.sname
from
P
inner join SPJ on `P.p#` = `SPJ.p#` and P.pname = 'Bolt'
inner join J on `SPJ.j#` = `J.j#` and J.city = 'London'
inner join S on `SPJ.s#` = `S.s#`
我在join语法中添加了
pname
和city
限制,因为这似乎是您所要求的。不过,这些也可以留在where子句中。还要注意extended or special characters in column names in mysql(如
p#
)必须包含在backticks中。