У меня есть 2 базы данных: элементы (с идентификатором и именем) и страны (с идентификатором и именем страны). Я ищу запрос, в котором перечислены все элементы без пробела страны, а также каждый элемент с соответствующей страной. Пример:SQL - Избегайте союза Все
ItemID ItemName
1 Item1
2 Item2
ItemID Country
1 US
1 Canada
Желаемая Выход:
ItemID ItemName Country
1 Item1 NULL
1 Item1 US
1 Item1 Canada
2 Item2 NULL
Без первой линии, это просто простое соединение:
SELECT
i.[ItemID]
,i.[ItemName]
,ic.[Country]
FROM ItemCountry ic
INNER JOIN Item i ON ic.ItemID = i.ItemID
Однако, единственный способ, которым я уже разобрался, чтобы получить первая строка должна появиться, сделав объединение:
SELECT
i.[ItemID]
,i.[ItemName]
,ic.[Country]
FROM ItemCountry ic
INNER JOIN Item i ON ic.ItemID = i.ItemID
UNION all
SELECT
i.[ItemID]
,i.[ItemName]
,NULL
Я хотел бы избежать объединения, поскольку базы данных большие, и я планирую отфильтровать подмножество после того, как у меня есть полный список, но я не знаю, возможно ли это.
Фильтрация предназначена для выбора элементов на странице #X, поэтому это невозможно, пока у меня не будет полный (упорядоченный) список.
В чем проблема с объединением? Вы можете отфильтровать результат объединения. –
Проблема с объединением заключается в том, что базы данных могут быть большими, и я не хочу расширять их до момента фильтрации. – gvermeer
Затем объясните фильтрацию, возможно, мы сможем помочь, если поймем полную картину. –