У меня есть две таблицы:
Items
- ItemId PK - первичный ключ
- UPC,
- EAN
TDItems
- TdItemsId PK - первичный ключ
- UPC,
- EAN
Эти две таблицы не связаны в моей БД через ограничение FK.
Таблицы содержат элементы, которые используют одну и ту же информацию, на основе которой я хочу присоединить / объединить их: UPCи столбцы EAN
Я пытался выполнить простой запрос, подобный следующему:
select *
from Items as It join TDItems as tdi
on it.UPC=tdi.UPC and it.EAN=tdi.EAN
Этот запрос возвращает «некоторые» результаты, однако, когда я сделал объединение из двух запросов, подобных этому:
select *
from Items as It join TDItems as tdi
on it.UPC=tdi.UPC
UNION -- important part I guess?
select *
from Items as It join TDItems as tdi
on it.EAN=tdi.EAN
Первый запрос возвращает 504 результата, а второй запрос возвращает 709 результатов ...
Итак, мои вопросы:
- Почему первый запрос возвращает меньше результатов, когдадолжно быть так же?
- Как мне сделать этот запрос, чтобы он возвращал количество найденных строк (т. Е. 504, 600 или любое другое число?)
Может кто-нибудь мне помочьнаписать правильный запрос для этих проблем?
Редактировать:
Привет @Gordon Я переписал внутреннее соединение
select *
from Items as It join TDItems as tdi
on it.UPC=tdi.UPC OR it.EAN=tdi.EAN
Было бы это решение, чтобы иметьэлементы соответствуют либо в UPC, либо в EAN (то есть не обязательно должны совпадать пары UPC и EAN)