Я пытаюсь сделать запрос к базе данных в MySQL:Получение повторяющихся значений SQL в MySQL в таблице unioned
SELECT id, number_id, number, year
FROM
tb_figures WHERE (id = 7 AND year = 45 AND number IS NULL)
AND
(id = 7 AND year = 47 AND number IS NOT NULL)
ORDER BY
number_id;
но он возвращает пустую таблицу, хотя бывают случаи, когда она должна соответствовать.
Я хочу, чтобы проверить, если номер НЕ NULL, если год = 47 и если число IS NULL, когда год = 45 и только затем показать результаты в таблице.
EDIT: Как указано в комментариях, я ошибался в логике, и указанный выше запрос не может работать.
мне удалось приблизиться с этим запросом:
SELECT
id, number_id, number, year
FROM
tb_figures
WHERE
id = 7 AND (year = 45 AND number IS NOT NULL)
UNION
SELECT
id, number_id, number, year
FROM
tb_figures
WHERE
id = 7 AND (year = 47 AND kennzahl IS NULL)
ORDER BY
number_id;
Но теперь мне нужно, чтобы отобразить только те строки, которые имеют тот же number_id.
Есть ли что-нибудь, что я могу добавить в запрос, чтобы отобразить только строки с дубликатом number_id?
Я думаю, что 'WHERE' часть неправильна. Вы просматриваете одну строку с 'id = 7' с разными значениями в одном столбце (' year' и 'number')? «Id» уникален? –
* "он возвращает пустую таблицу, хотя есть случаи, когда она должна соответствовать" * - Не совсем. Запись, где 'number IS NULL' и' number IS NOT NULL' в то же время не может существовать. Вы хотите 'OR', а не' AND' – Tomalak
, что AND split - что делает с помощью возврата ИЛИ? –