powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Объединение таблиц
13 сообщений из 13, страница 1 из 1
Объединение таблиц
    #38447912
kinnder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,уважаемые члены форума! С SQL работаю относительно недавно, поэтому встал вопрос по объединению таблиц для отчета. Нужно выполнить объединение двух таблиц как показано на примере.
Table 1
idname1 иван2 петр3 сергей
Table 2
idauto1 ваз-21091 газ-31102 бмв

Result_Table
idnameauto1иванваз-2109 nullnullгаз-31102петр бмв3сергейnull

Каким запросом можно получить итоговую таблицу?
...
Рейтинг: 0 / 0
Объединение таблиц
    #38447926
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никаким. В приведённом примере нет логики. Почему null-ы во второй результирующей записи, а не в первой?

Практически почти что результирующий набор можно получить, используя union двух запросов (ну нет тут full outer join, придётся эмулировать):

Код: sql
1.
2.
3.
select from t1 left join t2
union
select from t2 left join t1 where t1.id is null



однако он не будет делать той самой нелогичной хрени по об-null-ению повторяющихся полей. Если очень нужно - то поручи эту работу клиентской части.
...
Рейтинг: 0 / 0
Объединение таблиц
    #38447947
kinnder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Null-ы во второй строке, потому что потом данные из результирующей таблицы без дополнительных обработок будут переданы в отчет Crystal Reports на печать.
...
Рейтинг: 0 / 0
Объединение таблиц
    #38447991
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kinnderNull-ы во второй строке, потому что потом данные из результирующей таблицы без дополнительных обработок будут переданы в отчет Crystal Reports на печать.
в любой, самой зачуханой отчетной системе, есть опция (для поля вывода) - "Скрыть повторы"
если такое есть для Crystal Reports, то делаешь простой запрос
Table 1 left join Table 2 ... order by id
а для полей вывода id и name - устанавливаешь - "Скрыть повторы"
...
Рейтинг: 0 / 0
Объединение таблиц
    #38447994
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kinnderNull-ы во второй строке, потому что потом данные из результирующей таблицы без дополнительных обработок будут переданы в отчет Crystal Reports на печать.А про группировку в CrystalReports вы не слышали?
...
Рейтинг: 0 / 0
Объединение таблиц
    #38448072
kinnder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Групировки и всяческие навороты Crystal для меня пока еще "темный лес". Разбираюсь потихонечьку, но как обычно это бывает, на разбирание надо время,а у руководства времени нет, им надо вчера.
...
Рейтинг: 0 / 0
Объединение таблиц
    #38448088
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kinnderNull-ы во второй строке, потому что потом данные из результирующей таблицы без дополнительных обработок будут переданы в отчет Crystal Reports на печать.Почему не в первой??? почему вывод не вот такой:
id name auto null null ваз-2109 1 иван газ-3110 2 петр бмв 3 сергей null
и не такой:id name auto 1 иван газ-3110 null null ваз-2109 2 петр бмв 3 сергей null а именно так, как у тебя?
...
Рейтинг: 0 / 0
Объединение таблиц
    #38448125
kinnder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,Потому что в первом случае отчет будет не совсем удобен для визуального восприятия на бумаге, когда в отчете будет гораздо больше строк.
Столбец auto для второго случая должен быть отсортирован по возрастанию. В примере это наименование авто,в отчете это дата документа.
...
Рейтинг: 0 / 0
Объединение таблиц
    #38448136
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kinnderСтолбец auto для второго случая должен быть отсортирован по возрастанию. В примере это наименование авто,в отчете это дата документа.Ну так говно вопрос. Вона есть ФАК по выбору первой записи в группе. Выбирай. Линкуй по ID как подзапрос справа, да и бери все поля из него. Соответственно для второй и следующих записей в группе соответствия не найдётся, вот и будет тебе NULL и счастьице.
...
Рейтинг: 0 / 0
Объединение таблиц
    #38448177
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kinnderГрупировки и всяческие навороты Crystal для меня пока еще "темный лес". Разбираюсь потихонечьку, но как обычно это бывает, на разбирание надо время,а у руководства времени нет, им надо вчера.Весь прикол в том, что кристалу для правильной группировки и вывода красиво оформленной таблички НЕОБХОДИМО наличие дублирующихся записей, по которым он будет группировать данные отчета.

Изучайте матчасть, а не страдайте фигней
...
Рейтинг: 0 / 0
Объединение таблиц
    #38448186
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тем более что добавить группировку и сделать "общие" клетки таблицы а-ля Excel - дело 1-2 минут
...
Рейтинг: 0 / 0
Объединение таблиц
    #38448209
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cygapb-007...кристалу для правильной группировки и вывода красиво оформленной таблички НЕОБХОДИМО наличие дублирующихся записей значений ключей, по которым он будет группировать данные отчета.
...
Рейтинг: 0 / 0
Объединение таблиц
    #38450607
kinnder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чтобы не плодить тем на форуме,спрошу в этой...с группировками в Crystal все заработало. Отчет выходит практически такой как надо.Спасибо за наставления. Позвольте еще один маленький вопрос в этой теме. Можно ли просуммировать результаты группировки?Если да то как проще это осущетсвить?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Объединение таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]