|
|
|
| Опять я с ними))
Помогите пожалуйста, есть две таблици
таблица каналов
CREATE TABLE `channels` (
`channels_id` int(8) NOT NULL,
`name` varchar(255) NOT NULL,
`logotype` varchar(255) NOT NULL,
PRIMARY KEY (`channels_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
|
таблица программ
CREATE TABLE `telecast` (
`telecast_id` int(8) NOT NULL,
`name` varchar(255) NOT NULL,
`time_start` datetime NOT NULL,
`time_end` datetime NOT NULL,
`channels_id` int(8) NOT NULL,
PRIMARY KEY (`telecast_id`),
KEY `name` (`name`,`time_start`,`channels_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
|
скажите как мне
как выводить все программы всех каналов в определенную дату?
как выводит все программы всех каналов на неделю?
как выводить все программы определенного канала в определенную дату?
как выводит все программы определенного канала на неделю?
чтоб поменьше MySQL запросов было, может можно как-то таблицы оптимизировать чтоб лучше было?
Заранее огромное спасибо. | |
|
|
|
|
|
|
|
для: CrazyAngel
(30.09.2006 в 06:26)
| | >как выводить все программы всех каналов в определенную дату?
Самое простое решение (за сегодня, иначе вместо NOW() нужно будет подставить дату в формате MySQL)
SELECT * FROM `telecast`
WHERE DAY(`time_start`) = DAY(NOW()) AND MONTH(`time_start`) = MONTH(NOW()) AND YEAR(`time_start`) = YEAR(NOW())
|
>как выводит все программы всех каналов на неделю?
В общем случае можно поступить так
SELECT * FROM `telecast`
WHERE `time_start` > '2006-10-02 0:00:00' AND `time_start` <= '2006-10-08 0:0:00'
|
>как выводить все программы определенного канала в определенную дату?
Для канала с channels_id = 3
SELECT * FROM `telecast`
WHERE DAY(`time_start`) = DAY(NOW()) AND MONTH(`time_start`) = MONTH(NOW()) AND YEAR(`time_start`) = YEAR(NOW()) AND channels_id = 3
|
>как выводит все программы определенного канала на неделю?
Для канала с channels_id = 3
SELECT * FROM `telecast`
WHERE `time_start` > '2006-10-02 0:00:00' AND `time_start` <= '2006-10-08 0:0:00' AND channels_id = 3
|
| |
|
|
|
|
|
|
|
для: cheops
(30.09.2006 в 11:51)
| | Проблема в том как по channels_id узнавать имя и логотип канала в одних запросах) поэтому и твухтабличные запросы...
Сорри зато что не понятно объяснился... | |
|
|
|
|
|
|
|
для: CrazyAngel
(30.09.2006 в 06:26)
| | двухтабличный запроc происходит по следующему принципу
SELECT *(или имя_таблицы1.имя_поля, имя_таблицы2.имя_поля) FROM table1, table2 WHERE table1.id_somthing = table2.id_somthing
|
поправьте меня пожалуйста, если я не прав | |
|
|
|
|
|
|
|
для: Lelik
(01.10.2006 в 08:11)
| | Так мне надо циклом пробегаться а ка получается n+1 запросов, где n - кол-во каналов, а мне надо всего один запрос))) | |
|
|
|