如果我在两个不同表中的where语句中有两个条件,是否需要在它们之间建立连接?
喜欢:
select *
from customer, order
where customer = 'john'
and order = 'car'
是否要求他们拥有加入语句,因为我在来自中有两个表?
答案 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
中存在参考