Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите сделать запрос
 
 автор: buka   (24.03.2008 в 18:52)   письмо автору
 
 

Вот структура таблиц:

CREATE TABLE IF NOT EXISTS `task_files` (
`id` int(11) NOT NULL auto_increment,
`file` varchar(255) NOT NULL,
`user_id` int(11) NOT NULL,
`rule_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM

CREATE TABLE IF NOT EXISTS `rules` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`gameid` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM

Делаю запрос такой:

SELECT r.id,r.name,r.gameid,t.file FROM rules r LEFT JOIN task_files t ON t.rule_id = r.id WHERE r.gameid = ? AND t.user_id = ? GROUP BY r.id

Вообщем мне надо чтобы был список с именами файлов, которые есть, а если файла нет - пустое поле на правила из таблицы rules. Но мне выдает список только тех записей, на которые есть загруженные файлы из таблицы task_files, а если файла нет - в результате запроса нет записи.

   
 
 автор: Root   (25.03.2008 в 05:49)   письмо автору
 
   для: buka   (24.03.2008 в 18:52)
 

ваш "t.user_id = ..." и указывает на то, что нужно выбирать только фалы которые есть.

   
 
 автор: buka   (25.03.2008 в 06:22)   письмо автору
 
   для: Root   (25.03.2008 в 05:49)
 

А как без него, если мне надо выбрать файлы только этого пользователя?

   
 
 автор: Root   (25.03.2008 в 08:04)   письмо автору
 
   для: buka   (25.03.2008 в 06:22)
 


SELECT rules.name, rules.gameid, task_files.file 
     FROM rules
     LEFT JOIN task_files ON rules.id = task_files.rule_id
     AND task_files.user_id = ?
     WHERE rules.gameid=?;

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования