JOIN所有指定字段匹配的表

时间:2014-08-13 21:27:39

标签: sql

我有两张桌子。我正在选择第一个表中的所有值,并尝试获取第二个表中与指定字段的BOTH匹配的关联行。

所以在这个例子中,我只想要CarsTable中的行和TrucksTable中的相关列,其中Tires和Windows值匹配(如果只有一个值匹配,我不想要它)。我甚至不确定连接是否正确。有什么想法吗?

SELECT * FROM CarsTable, TrucksTable
  LEFT JOIN TrucksTable t1
  ON 
  t1.Tires = Cars.Tires
  LEFT JOIN Trucks t2
  ON 
  t2.Windows = Cars.Windows

1 个答案:

答案 0 :(得分:1)

你需要对连接进行一些研究......你的from子句到处都是。像你这里的Carstable,truckstable是一个交叉连接......我不明白你正在做什么左边加入。我想你只有两张桌子:

SELECT c.*, t.* FROM CarsTable c
inner join TrucksTable t
on t.tires = c.tires and t.windows = c.windows

内连接将用作过滤器...如果cartable中的记录在列表中找不到匹配,则不会出现。如果你想要所有可购买的行,即使那些找不到匹配的行,也可以使用左连接(在这种情况下,t。*将为null)

相关问题