powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не знаю лучше сделать. Помогите пожалуйста.
6 сообщений из 6, страница 1 из 1
Не знаю лучше сделать. Помогите пожалуйста.
    #38351782
psevdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все привет. Есть у меня несколько таблиц.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
CREATE TABLE IF NOT EXISTS `video` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(250) NOT NULL,
  `author_id` int(10) NOT NULL,
  `file` varchar(250) NOT NULL,
  `date_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `duration` smallint(6) NOT NULL COMMENT 'длительность ролика в сек.',
  `voice` tinyint(1) NOT NULL DEFAULT '0',
  `price` double NOT NULL,
  `description` text NOT NULL,
  PRIMARY KEY (`id`)
)

CREATE TABLE IF NOT EXISTS `video_category` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `video_id` int(11) NOT NULL,
  `category_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
)

CREATE TABLE IF NOT EXISTS `video_genre` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `video_id` int(11) NOT NULL,
  `genre_id` smallint(6) NOT NULL,
  PRIMARY KEY (`id`)
)

CREATE TABLE IF NOT EXISTS `video_grade` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `video_id` int(11) NOT NULL,
  `grade_id` smallint(6) NOT NULL,
  PRIMARY KEY (`id`)
)



Ну т.е. основная таблица это video. И вот мне нужно сделать фильтр по всем параметрам. Пока можно выделить следующие:
1. voice
2. grade - связанная таблица
3. genre - связанная таблица

Если бы все параметры видео находились в одной таблице, то проблем бы не было. А тут у меня сомнения появились. Хочется, что бы было сделано красиво и что бы работало быстро.
...
Рейтинг: 0 / 0
Не знаю лучше сделать. Помогите пожалуйста.
    #38352369
psevdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужто ни кто не подскажет?
...
Рейтинг: 0 / 0
Не знаю лучше сделать. Помогите пожалуйста.
    #38352374
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psevdo,

Таблицы не ваши, поэтому вы не видите очевидного

video - id и video_id это связь.

select * from video, video_category, video_genre, video_grade
where video.id = video_category.video_id AND ... тут все повторяется через AND
;
...
Рейтинг: 0 / 0
Не знаю лучше сделать. Помогите пожалуйста.
    #38352375
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Постойте, при чем тут voice? Это поле само по себе либо связано с таблицей, которую вы еще не нашли.
...
Рейтинг: 0 / 0
Не знаю лучше сделать. Помогите пожалуйста.
    #38352378
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем вы получите только данные для следующей связи, а не сами данные по жанру, например. Это может быть удобно для вывода в интерфейс. Скажем выделить в списке жанр, где его id тупо совпадает с позицией в списке. Но если придется выводить название жанра словом, то еще раз надо запросить название жанра по id, или наращивать мощность запроса.

Чтобы сделать фильтр по жанрам где жанр это id жанра полученное например из того же списка в интерфейсе надо закончить

select * from video, video_category, video_genre, video_grade
where video.id = video_category.video_id AND ... тут все повторяется через AND
AND genre_id = число полученное от интерфейса
;
...
Рейтинг: 0 / 0
Не знаю лучше сделать. Помогите пожалуйста.
    #38352415
psevdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблицы мои, все связи мне понятны. Обычно я такие вещи джоином связываю. А тут получается больше одной связи. Вот поэтому и спрашиваю как лучше это сделать. Связывать все таблицы джоином. Может делать как то по другому, делать несколько запросов. Может еще как поизвращаться. Вот, что мне интересует.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не знаю лучше сделать. Помогите пожалуйста.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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