Russian Qt Forum
Февраля 19, 2025, 00:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отображение данных из реляционной базы данных (один ко многим)  (Прочитано 4964 раз)
stas3638
Гость
« : Февраля 03, 2016, 06:17 »

Хочу сделать отображение в таблице данных из разных таблиц БД, которые имеют связь "один ко многим". Проблем особых не вызывает это, но не хочу, чтобы дублировались данные из первой таблицы (в которой записи "уникальны") из-за второй. Есть ли какая-то возможность сделать отображение более доступным для пользователя? (например, как в MS Access, но не обязательно скрывать записи)
Записан
chagovets
Новичок

Offline Offline

Сообщений: 24


Просмотр профиля
« Ответ #1 : Февраля 03, 2016, 08:38 »

Так выполните запрос к данным так, чтобы выполнялись необходимые условия. Зачем это перекладывать на клиента?
Записан
stas3638
Гость
« Ответ #2 : Февраля 04, 2016, 04:56 »

Так выполните запрос к данным так, чтобы выполнялись необходимые условия. Зачем это перекладывать на клиента?

Я то могу сделать все с помощью inner join например, но в результате будет дублировать данные в БД из первой таблицы.
Приведу пример: есть 2 таблицы:
Таблица 1
| ID | Column1 | Column2|
| 1  |qwerty     | 123      |
Таблица 2
|ID|Column1|Column2|
|1 | asd      | +++    |
|1 | djs       | ###    |

Выполняя запрос
Код:
select * from table1 inner join table2 on table1.ID = table2.ID;
результатом будет такая таблица:
| table1.ID | table1.Column1 | table1Column2 | table2.ID | table2.Column1 | table2.Column2 |
| 1            |qwerty             | 123                |1             | asd                 | +++               |
| 1            |qwerty             | 123                |1             | djs                  | ###               |
Это не является удовлетворительным результатом для меня, по-этому и создал эту тему.
Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #3 : Февраля 04, 2016, 05:38 »

Зачем выбирать все, если нужно только конкретное? Например:

Код:
select t2.ID, t1.Column1, t1.Column2, t2.Column1, t2.Column2  from table1 t1 inner join table2 t2 on t2.ID = t1.ID;
Записан
stanukih
Гость
« Ответ #4 : Февраля 04, 2016, 20:13 »

Цитировать
Зачем выбирать все, если нужно только конкретное? Например:
Думаю вы не заметили этой части
Цитировать
но в результате будет дублировать данные в БД из первой таблицы.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #5 : Февраля 04, 2016, 22:33 »

Кажется вам нужно дерево
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 865

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #6 : Февраля 05, 2016, 10:37 »

Кажется вам нужно дерево
Или 2 таблицы. В первой владельцы, во второй "подчиненные".
Это характерная задачка для автоматизации.
Пример:
Контрагенты -> банковские счета.
Фирмы->Подразберения
Товары -> единицы измерения.
Я обычно делаю 2-мя таблицами. Подчиненную показываю только в форме владельца, ибо смысла нет её показывать.
Идея с одной таблицей - тухлая.
« Последнее редактирование: Февраля 05, 2016, 10:40 от panAlexey » Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #7 : Февраля 05, 2016, 10:50 »

Предложение от panAlexey реализовать проще
Записан
stas3638
Гость
« Ответ #8 : Февраля 05, 2016, 15:27 »

Благодарю за совет, panAlexey, действительно реализую все двумя таблицами.
Записан
popper
Гость
« Ответ #9 : Февраля 05, 2016, 15:57 »

QColumnView позволяет отображать древовидную модель в нескольких таблицах.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.087 секунд. Запросов: 23.