使用另一个表列中的任何值过滤表

时间:2014-06-03 09:03:31

标签: sql database oracle select

如何在oracle中编写select以使用其他表列中的任何值过滤一个表中的值。

要清楚,我有两张桌子。例如汽车和颜色。

在Car表中我有两列,car_model和car_color,在Colors表中我有col_code和col_color列。

我需要选择所有car_model,其中car_color =颜色表中col_color列的任何颜色。

像伪的东西:

Select car_model From car Where car_color = color.col_color

2 个答案:

答案 0 :(得分:3)

我认为您不需要任何联接,这是编写查询的不直观方式。

select car_model
from car
where car_color in (select col_color from color)

答案 1 :(得分:1)

您可以像这样使用join(异常,外部联接):

select car.car_model, color.col_color from car left join color on car.car_color = color.col_code

或者,如果你更喜欢它,

select car.car_model, color.col_color from car, color where car.car_color = color.col_code

实际上是内连接表。您可以在Wikipedia中找到有关不同类型联接的信息。