【发布时间】:2016-08-03 13:28:24
【问题描述】:
我尝试查询四个不同的表,第一个表是我将进行大部分查询的地方,但如果汽车中没有匹配项,我将查看其他表中的其他字段以查看如果 VIN 参数匹配。
例子:
Select
c.id,
c.VIN,
c.uniqueNumber,
c.anotheruniqueNumber
FROM Cars c, Boat b
WHERE
c.VIN = @VIN(parameter),
b.SerialNumber = @VIN
现在说我在Cars 中没有匹配项,但在Boat 中存在匹配项,我如何能够拉出匹配的船记录与汽车记录?我尝试加入表,但表没有唯一标识符来引用另一个表。
我正在尝试找出从参数中搜索所有表格但代码量最少的最佳方法。我想过做UNION ALL,但不确定这是否是我真正想要的这种情况,因为记录的数量可能会变得非常大。
我目前正在使用SQL Server 2012。提前致谢!
更新:
CAR table
ID VIN UniqueIdentifier AnotherUniqueIdentifier
1 2002034434 HH54545445 2016-A23
2 2002035555 TT4242424242 2016-A24
3 1999034534 AGH0000034 2016-A25
BOAT table
ID SerialNumber Miscellaneous
1 32424234243 545454545445
2 65656565656 FF24242424242
3 20023232323 AGH333333333
如果@VIN 参数与船标识符匹配,则预期结果:
BOAT
ID SerialNumber Miscellaneous
2 65656565656 FF24242424242
【问题讨论】:
-
样本数据和预期结果会有所帮助
-
通常
JOIN用于具有已定义关系的数据。例如:课程和学生。缺少可能的 Cars Towing Boats 没有参照关系,因此JOIN不适用于此处。 -
拜托拜托,请停止使用那个过时的join syntax.
-
Simlpy写两个查询,Q1从
cars中选择,如果没有返回行Q2从boats中选择。
标签: sql sql-server join union