这是学术问题。我正在使用sql workbench。
在sql中,当我们写的时候,
select city.name from city;
执行速度更快,结果显示所有城市名称。
但是,如果我写,
select city.name from city, country;
执行时间更长,结果只显示一个城市名称。
为什么额外的表名称来自'来自'部分破坏了结果?难道不应该完全被忽略吗?
答案 0 :(得分:2)
结果是笛卡尔积。可能查询不会一遍又一遍地返回一个相同的名称,它只是为每个城市表中的每一行返回一次。
答案 1 :(得分:0)
由于没有JOIN,基本上由于缺少WHERE子句而得到Cartesian Product。
答案 2 :(得分:0)
如果您需要显示与您的第一个表连接的另一个表中的数据(请以某种方式),请尝试以下操作:
select city.name, country.name
from city, country
where city.country_id = country.country_id
或者您可以这样写:
select city.name, country.name
from city
join country on (city.country_id = country.country_id)
如果这很难理解,我会尝试查阅并阅读' sql join'在谷歌:)