我已经创建了一个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语法中添加了pnamecity限制,因为这似乎是您所要求的。不过,这些也可以留在where子句中。
还要注意extended or special characters in column names in mysql(如p#)必须包含在backticks中。

09-12 12:50