У меня есть SQL-запрос, состоящий из двух операторов SELECT, которые объединены вместе. Когда они запускаются индивидуально, первый SELECT возвращает 10 записей, а второй SELECT возвращает 1 запись, поэтому, когда я UNION из двух SELECT, я ожидаю получить 11 записей, но это не так, я получаю только 9 записей.Заявление UNION, показывающее несогласованные результаты
Из-за природы SQL я не могу опубликовать его здесь, но он состоит из множества JOINS по 5 таблицам. Все возвращаемое является правильным и действительным.
Просто интересно, видел ли кто-нибудь этот вопрос, когда UNION'ые два оператора SELECT, и если у кого-то есть какие-либо советы относительно того, что может быть причиной или даже указать мне в правильном направлении, спасибо.
вы не должны ожидать ровно 11 записей. UNION будет «объединять» дубликаты в одну строку, поэтому вы должны ожидать записи MAX 11. Если вы получаете 9, это, вероятно, означает, что они являются дубликатами в первых 10 записях ... Можете ли вы попробовать с UNION ALL? И/или попробуйте DISTINCT в первом запросе, чтобы узнать, сколько строк вы получите. –
Мы не можем помочь вам, если вы не опубликуете код. «UNION» не должен вести себя так, поэтому код будет иметь решающее значение для определения проблемы. Я бы предложил создать [SQLFiddle] (http://sqlfiddle.com) с кодом, который показывает проблему - он не обязательно должен быть вашим точным кодом - это просто то, что проявляет то же поведение. –
@ RaphaëlAlthaus Спасибо за это, отлично работает сейчас, не знал о опции ALL. :) – llanato