kabachok
Новичок
SELECT из трех таблиц, с рандомной строкой.
Дано:
php5, mysql5, кривые руки, база.
База:
[sql]
CREATE TABLE `img_category` (
`id_category` smallint(6) NOT NULL auto_increment,
`poz` smallint(6) NOT NULL,
`name` char(10) NOT NULL,
`name_rus` char(20) NOT NULL,
`total_gallery` int(11) NOT NULL,
`total_files` int(11) NOT NULL,
PRIMARY KEY (`id_category`),
UNIQUE KEY `name` (`name`),
KEY `total_gallery` (`total_gallery`),
KEY `total_files` (`total_files`),
KEY `poz` (`poz`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
CREATE TABLE `img_files` (
`id_category` smallint(6) NOT NULL,
`id_gallery` mediumint(9) NOT NULL,
`name_file` char(36) character set cp1251 collate cp1251_general_cs NOT NULL,
PRIMARY KEY (`name_file`),
KEY `id_category` (`id_category`),
KEY `id_gallery` (`id_gallery`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
CREATE TABLE `img_gallery` (
`id_gallery` int(11) NOT NULL auto_increment,
`id_category` smallint(6) NOT NULL,
`name_gallery` char(50) NOT NULL,
`data_gallery` date NOT NULL,
`files_gallery` mediumint(9) NOT NULL,
`status_gallery` tinyint(4) NOT NULL,
PRIMARY KEY (`id_gallery`),
KEY `id_category` (`id_category`),
KEY `data_gallery` (`data_gallery`),
KEY `files_gallery` (`files_gallery`),
KEY `status_gallery` (`status_gallery`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
[/sql]
Запрос:
[sql]
SELECT `img_gallery`.* , `img_category`.* , `img_files`.*
FROM `img_gallery`
LEFT JOIN `img_category` ON `img_gallery`.id_category=`img_category`.id_category
LEFT JOIN `img_files` ON `img_gallery`.id_gallery=`img_files`.id_gallery
GROUP BY `img_gallery`.id_gallery
[/sql]
Вопрос: Реально ли сделать так, чтобы из таблицы img_files для каждой сроки img_gallery выводился случайный файл?
Дано:
php5, mysql5, кривые руки, база.
База:
[sql]
CREATE TABLE `img_category` (
`id_category` smallint(6) NOT NULL auto_increment,
`poz` smallint(6) NOT NULL,
`name` char(10) NOT NULL,
`name_rus` char(20) NOT NULL,
`total_gallery` int(11) NOT NULL,
`total_files` int(11) NOT NULL,
PRIMARY KEY (`id_category`),
UNIQUE KEY `name` (`name`),
KEY `total_gallery` (`total_gallery`),
KEY `total_files` (`total_files`),
KEY `poz` (`poz`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
CREATE TABLE `img_files` (
`id_category` smallint(6) NOT NULL,
`id_gallery` mediumint(9) NOT NULL,
`name_file` char(36) character set cp1251 collate cp1251_general_cs NOT NULL,
PRIMARY KEY (`name_file`),
KEY `id_category` (`id_category`),
KEY `id_gallery` (`id_gallery`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
CREATE TABLE `img_gallery` (
`id_gallery` int(11) NOT NULL auto_increment,
`id_category` smallint(6) NOT NULL,
`name_gallery` char(50) NOT NULL,
`data_gallery` date NOT NULL,
`files_gallery` mediumint(9) NOT NULL,
`status_gallery` tinyint(4) NOT NULL,
PRIMARY KEY (`id_gallery`),
KEY `id_category` (`id_category`),
KEY `data_gallery` (`data_gallery`),
KEY `files_gallery` (`files_gallery`),
KEY `status_gallery` (`status_gallery`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
[/sql]
Запрос:
[sql]
SELECT `img_gallery`.* , `img_category`.* , `img_files`.*
FROM `img_gallery`
LEFT JOIN `img_category` ON `img_gallery`.id_category=`img_category`.id_category
LEFT JOIN `img_files` ON `img_gallery`.id_gallery=`img_files`.id_gallery
GROUP BY `img_gallery`.id_gallery
[/sql]
Вопрос: Реально ли сделать так, чтобы из таблицы img_files для каждой сроки img_gallery выводился случайный файл?