У меня есть четыре разных таблицы, на которые я пытаюсь выполнить запрос, первая таблица - это то, где я буду выполнять большую часть запросов, но если в машине нет соответствия, я должен посмотреть в другой поля в других таблицах, чтобы увидеть, есть ли соответствие из параметра 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' здесь не применим. –
Пожалуйста, пожалуйста, прекратите использование устаревшего [синтаксиса соединения.] (Http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins .aspx) – Zane