У меня есть два запроса в одной таблице, и мне нужно получить результаты, которые не отображаются в первом наборе результатов.Заменяет ли UNION предыдущие результаты? `
Есть несколько способов, чтобы получить там (я не прошу одного), моя первая попытка была такова:
SELECT * FROM
(
SELECT
o.custom_order_id AS 'order',
'yes' AS 'test'
FROM orders
WHERE <first criteria>
UNION
SELECT
o.custom_order_id AS 'order',
'no' AS 'test'
FROM orders
WHERE <second criteria>
) x
WHERE x.test = 'no'
UNION
не добавляет строки, которые уже появились в первом результирующем.
На самом деле я получаю строки как
12345 no
но 12345
появляется в первом результирующем (запрос перед тем UNION
).
Зачем?
Edit:
custom_order_id
не имеет индекса и не является первичным ключом (хотя на самом деле является уникальным) - это UNION
нужен (уникальный) индекс или рк признать ряд как уже в первой -resultset?
'UNION' вернет уникальные ** строки **. '12345 yes' и' 12345 no' ** две уникальные строки **. В вашем примере, если вы удалите поле 'test', вы получите то, что хотите. –
@AdrianoRepetti Это точно моя ошибка. – DanFromGermany
Может кто-нибудь сказать мне, что случилось с моим ответом? Downvote сбило с ума дерьмо :) – Kleskowy