Сама проблема проста, но я не могу найти решение, которое делает это одним запросом, и вот моя «абстракция» проблемы, чтобы дать более простое объяснение:
Я оставлю свое первоначальное объяснение в силе, но вот набор образцов данных и ожидаемый результат:
Хорошо, вот некоторые примеры данных, я разделил пары пустой строкой
-------------
| Key | Col | (Together they from a Unique Pair)
--------------
| 1 Foo |
| 1 Bar |
| |
| 2 Foo |
| |
| 3 Bar |
| |
| 4 Foo |
| 4 Bar |
--------------
И результат, который я ожидаю, после выполнения запроса один раз , необходимо иметь возможность выбрать этот набор результатов в одном запросе:
1 - Foo
2 - Foo
3 - Bar
4 - Foo
Первоначальное расширение:
У меня есть таблица, назовите ее TABLE
, где у меня есть два столбца, скажем ID
и NAME
, которые вместе образуют первичный ключ таблицы. Теперь я хочу выбрать что-то, где ID=1
, а затем сначала проверяет, может ли он найти строку, где NAME
имеет значение «Джон», если «Джон» не существует, он должен искать строку, где NAME
есть » Брюс "- но возвращает" Джон ", только если" Брюс "и" Джон "существуют или, конечно, существует только" Джон ".
Также обратите внимание, что он должен иметь возможность возвращать несколько строк в запросе, которые соответствуют вышеуказанным критериям, но, конечно, с разными комбинациями идентификаторов / имен, и что приведенное выше объяснение является лишь упрощением реальной проблемы.
Я мог бы быть полностью ослеплен своим собственным кодом и мыслью, но я просто не могу понять это.