Russian Qt Forum
Май 06, 2024, 12:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отображение данных из реляционной базы данных (один ко многим)  (Прочитано 4613 раз)
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

Сообщений: 864

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


Просмотр профиля
« Ответ #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.069 секунд. Запросов: 23.