проверить комбинацию записей в таблице - PullRequest
1 голос
/ 27 августа 2009

У меня есть два массива значений, таких как X, Y, Z и 1,2 Есть таблица A с двумя столбцами. Я хочу проверить, что в таблице A записи со всей комбинацией существуют независимо от дубликатов. например,

X 1

Y 1

Z 1

X 2

Y 2

Z 2

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 27 августа 2009

Следующие значения должны работать независимо от значений:

select col1, col2
from (select distinct col1 from combtest), (select distinct col2 from combtest)
minus
select col1, col2
from combtest

Сначала он получает возможные комбинации, затем вычитает фактические комбинации.

1 голос
/ 27 августа 2009

Это будет работать с любым набором данных и не предполагает, что вы знаете значения, которые будут в таблице.

Запрос возвращает все пропущенные строки. Вы можете легко превратить это в оператор вставки для заполнения таблицы.

SELECT *
FROM
(select * from (SELECT DISTINCT col1 FROM table1) CROSS JOIN (SELECT DISTINCT col2 FROM table1)) AS t1
LEFT OUTER JOIN table1 ON t1.col1 = table1.col1 AND t1.col2 = table1.col2
WHERE
table1.col1 is null
...