我有两张桌子。我正在选择第一个表中的所有值,并尝试获取第二个表中与指定字段的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
答案 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)