|
|
|
| Вот структура таблиц:
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, а если файла нет - в результате запроса нет записи. | |
|
|
|
|
|
|
|
для: buka
(24.03.2008 в 18:52)
| | ваш "t.user_id = ..." и указывает на то, что нужно выбирать только фалы которые есть. | |
|
|
|
|
|
|
|
для: Root
(25.03.2008 в 05:49)
| | А как без него, если мне надо выбрать файлы только этого пользователя? | |
|
|
|
|
|
|
|
для: 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=?;
|
| |
|
|
|