Scribling Doodle Ответов: 1

Заполните datagrid данными из 5 различных таблиц


Привет ребята,
У меня есть это 5 таблиц:

ПРОЦЕССОР: МАРКА, МОДЕЛЬ, ID_CPU, СОКЕТ, ТИП, ГАРАНТИЯ, ПРОДАН И ЗАКАЗ

ДИСК: МАРКА, МОДЕЛЬ, ID_DISK, ХРАНЕНИЕ, ТИП, РАЗМЕРЫ, ВЕС, ГАРАНТИЯ, ПРОДАЖА И ОФОРМЛЕНИЕ ЗАКАЗА

РАБОЧИЙ СТОЛ: БРЕНД, МОДЕЛЬ, ID_DESKTOP, МАТЕРИНСКАЯ ПЛАТА, ПРОЦЕССОР, ГРАФИКА, ПАМЯТЬ, ХРАНИЛИЩЕ, ИСТОЧНИК ПИТАНИЯ, ОС, РАЗМЕРЫ, ВЕС, ГАРАНТИЯ, ПРОДАЖА И ОФОРМЛЕНИЕ ЗАКАЗА

НОУТБУК: МАРКА, МОДЕЛЬ, ID_NOTEBOOK, МАТЕРИНСКАЯ ПЛАТА, ПРОЦЕССОР, ГРАФИКА, ПАМЯТЬ, ХРАНИЛИЩЕ, ИСТОЧНИК ПИТАНИЯ, ОС, РАЗМЕРЫ, ВЕС, ГАРАНТИЯ, ПРОДАЖА И ОФОРМЛЕНИЕ ЗАКАЗА

ОПЕРАТИВНАЯ ПАМЯТЬ: МАРКА, МОДЕЛЬ, ID_RAM, ПАМЯТЬ, ТИП, РАЗМЕРЫ, ВЕС, ГАРАНТИЯ, ПРОДАЖА И ОФОРМЛЕНИЕ ЗАКАЗА

И я хочу выбрать всю эту информацию из всех 5 таблиц, но фильтровать по CHECKOUT, то есть это значение либо 0, либо 1 и показать на checkout table.

PS: я использую базу данных ACCESS. Это школьный проект.

Что я уже пробовал:

Попробовал использовать строку " SELECT * FROM CPU, RAM,NOTEBOOK,DESKTOP,DISK WHERE CHECKOUT = 1"

1 Ответов

Рейтинг:
1

CHill60

Я уже ответил на этот вопрос - Как отфильтровать 5 различных таблиц с помощью одного datagridview и tabcontrol[^]

Вам серьезно нужно изменить схему вашей базы данных!

Из-за вашего ужасного дизайна таблицы (см. мой предыдущий ответ) вам нужно будет использовать СОЮЗ[^]

SELECT * FROM CPU WHERE CHECKOUT = 1
UNION
SELECT * FROM RAM WHERE CHECKOUT = 1
UNION 
SELECT * FROM NOTEBOOK WHERE CHECKOUT = 1
UNION
SELECT * FROM DESKTOP WHERE CHECKOUT = 1
UNION
SELECT * FROM DISK WHERE CHECKOUT = 1

Если бы вы последовали моему предыдущему совету, то это было бы
SELECT * FROM Hardware WHERE CHECKOUT = 1