SQL查询帮助-我认为是嵌套的
我正在编写一条SQL语句,它需要:SQL查询帮助-我认为是嵌套的,sql,nested,Sql,Nested,我正在编写一条SQL语句,它需要: 找一份有一定数量的工作 将该作业与另一个表匹配 显示结果 这就是我现在拥有的 select * from PreviousJobs pj, Jobs j where jobId = '273121' AND where (pj.sOtherRef = j.sOtherRef) = True Hmmmmm您不需要=True或第二个where 只是 不需要筑巢;这是一个需要的简单连接,最好使用显式连接表示法编写: SELECT cj.*, pj.*
select * from PreviousJobs pj, Jobs j where jobId = '273121'
AND where (pj.sOtherRef = j.sOtherRef) = True
Hmmmmm您不需要=True或第二个where 只是
不需要筑巢;这是一个需要的简单连接,最好使用显式连接表示法编写:
SELECT cj.*, pj.*
FROM PreviousJobs AS pj
JOIN Jobs AS cj ON pj.sOtherRef = cj.sOtherRef
WHERE cj.jobId = '273121'
您不需要语句中的第二个WHERE(这是一个语法错误;您应该向我们提供DBMS给您的错误消息)。您不需要将比较与真实进行比较
在SQL-86和SQL-89中,FROM子句中以逗号分隔的表名列表是必需的,但自从数据库管理系统中添加了SQL-92支持后,就不再需要了。您应该了解它,以便在阅读旧SQL时了解它的含义。但是您应该计划只使用新的连接符号,除非工作场所标准对使用旧符号施加了巨大的(而且是不明智的)压力
根据您使用的DBMS,您可能会发现表中的AS别名是不允许的(Oracle),即使标准说它是可以的。这种差异就是为什么在问题中包含有关DBMS的信息是一个好主意
select *
from PreviousJobs pj inner join Jobs j ON pj.sOtherRef = j.sOtherRef
where j.jobId = '273121'
+1用于指出以逗号分隔的表格名称列表样式。这种风格早已不再是模拟砖手机的风格,OP真的需要现代化。
select *
from PreviousJobs pj inner join Jobs j ON pj.sOtherRef = j.sOtherRef
where j.jobId = '273121'