SQL:有两个表需要连接语句吗?

时间:2017-12-21 19:18:40

标签: mysql sql

如果我在两个不同表中的where语句中有两个条件,是否需要在它们之间建立连接?

喜欢:

select *
from customer, order 
where customer = 'john'
and order = 'car'

是否要求他们拥有加入语句,因为我在来自中有两个表?

3 个答案:

答案 0 :(得分:1)

让我假设您打算:

select *
from customer c cross join
     orders o
where c.customer = 'john' and o.order = 'car';

这很好。我可能希望orders表有一个"客户ID"某种。但如果你想让所有" john" s与所有" car" s交叉,那么查询会按你的意愿行事。

有些人会把它写成内部联接:

select *
from customer c join
     orders o
     on c.customer = 'john' and o.order = 'car';

我是仙女中立 - 除了我强烈建议您拼出cross join而不是逗号。

答案 1 :(得分:0)

是的,你绝对需要加入这两个表来获得你想要的结果。

答案 2 :(得分:0)

如果您在两个表之间定义了关系,那么您也可以在不使用JOIN的情况下使用嵌套查询。

例如:

SELECT id FROM table_A WHERE table_B_iD=(SELECT table_B_iD FROM table_B WHERE amount>10)

在这种情况下,它假设table_B中的table_A中存在参考