有效地在具有多个值的两个表之间找到匹配

时间:2018-01-10 09:55:53

标签: sql join db2

我正在寻找一种最有效的方法来从一个表中返回记录,这些表在另一个表中具有匹配的数字。

我想做的是这样的:

SELECT *
FROM CARS
WHERE MODEL IN (SELECT MODEL FROM CAR_MAKES 
                WHERE YEAR = 2018)

所以基本上,我有一年,我想从2018年的CAR_MAKES表中得到所有模型(n号),我想从返回的每个模型(n号)返回CARS表中的所有内容。

我只想返回CARS表的内容,没有别的。

我知道有几种方法可以看到这一点。从我所看到的,'WHERE IN'语句效率不高,所以最好沿着使用连接的路线。

欢迎任何想法,谢谢。

更新:

这就是我现在所拥有的:

SELECT C.* FROM CARS AS C
JOIN CAR_MAKES CM ON
C.MODEL = CM.MODEL
WHERE CM.YEAR = 2018

1 个答案:

答案 0 :(得分:0)

SELECT *
  FROM CARS C
  LEFT OUTER JOIN CAR_MAKES CM ON C.id = CM.carsId
 WHERE CM.YEAR = 2018