Mysql 基于三个表编写sql连接
oracle数据库中有以下三个表,分别命名为A、B和CMysql 基于三个表编写sql连接,mysql,sql,oracle,Mysql,Sql,Oracle,oracle数据库中有以下三个表,分别命名为A、B和C A表中的字段是AID(主键)、AName、BID(fk) B表中的字段是BID(pk),即BAge C表中的字段为CID(pk)、CSalary、BID(fk) 现在我在三个表上编写连接条件,如下所示 select a.AName from A a,B b,C c where a.BID=b.BID and b.BID=c.BID. 我在这三个表上写连接条件的方法是正确的。请建议我 尝试加入: select a.AName f
- A表中的字段是AID(主键)、AName、BID(fk)
- B表中的字段是BID(pk),即BAge
- C表中的字段为CID(pk)、CSalary、BID(fk)
select a.AName from A a,B b,C c
where a.BID=b.BID and b.BID=c.BID.
我在这三个表上写连接条件的方法是正确的。请建议我 尝试加入:
select
a.AName
from A a
inner join B b on a.BID=b.BID
inner join C c on b.BID=c.BID
where c.CSalary=1000;
您的查询对Oracle有效,您所说的“Wong Results”到底是什么意思?意思是在我的连接条件中,我编写了a.BID=b.BID和b.BID=c.BID,这里我根据这两个表达式的BID编写查询,这样我就违反了任何连接条件。这不是结果,这是条件。你说这个查询给了你错误的结果。您提供的查询应该为您提供所有记录的列表,这些记录在薪资字段为1000的所有三个表中都有。这不是你想要的吗?我怀疑这些加入条件是正确的或不是基于出价。对不起,我不理解最后的评论;如果您询问这些条件是否正确,那么根据您的表结构,它们似乎是正确的。也许你可以把你期望的结果和你得到的结果放在一起。表
a
的别名a
没有真正的意义。@a\u horse\u没有名字:我试图在现有查询中不做太多更改:-)我不确定这是否能解决问题,因为据我所知,它将返回与当前相同的结果。