我完全是自学的,所以我的知识有明显的差距。当我需要能够从多个表中获取数据时,我学习了如何进行连接。例如,如果我需要凭证表中的凭证号、帐号和余额以及另一个表中的相应地址,我会这样做:
select v.voucherNbr, v.balanceInit, v.acctID, a.address, a.city from vouchers v
left join addresses a on v.acctID = a.id
这将返回所有凭证记录,以及恰好存在的任何地址(在这种情况下,即使没有相应的地址,我们也希望返回凭证记录,因此使用左连接。)
我最近继承了一些代码,这些代码似乎试图获取相同的数据(在这种情况下,它确实返回了正确的记录),它是这样的:
select v.voucherNbr, v.balanceInit, v.acctID, a.address, a.city from vouchers v, addresses a
where v.acctID = a.id
任何人都可以向我解释这样做而不是使用连接的含义。正如我所说,在这种特殊情况下,它确实会返回与连接相同的数据,但它会始终如此吗?
最佳答案
它只是碰巧有相同的结果,但在某些时候它不会,因为你的查询有一个外连接,他们提供给你的语法是一个隐式的内连接。
关于mysql - 加入与 mySQL 中的其他方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4326404/