Задавайте вопросы, мы ответим
Вы не зашли.
Нужно выбрать из таблицы table3 поле id.
Такие условия:
table3: file<>'' AND `status`=1 AND `onoff`=1
table2: `status`=1 AND `ban`=0 AND `onoff`=1
table1: `ban`=0 AND `kr`>0 AND `onoff`=1
Общее условие: id.table1=id_t1.table2=id_t1.table3
Вот таблицы
CREATE TABLE `table1` (
`id` int(11) NOT NULL auto_increment,
`onoff` int(1) NOT NULL default '0',
`kr` float(15) NOT NULL default '0',
`ban` int(2) NOT NULL default '0',
PRIMARY KEY (`id`)
)
CREATE TABLE `table2` (
`id` int(15) NOT NULL auto_increment,
`id_t1` int(11) default '0',
`onoff` int(2) NOT NULL default '0',
`ban` int(2) NOT NULL default '0',
`status` int(2) default '0',
PRIMARY KEY (`id`)
)
CREATE TABLE `table3` (
`id` int(20) NOT NULL auto_increment,
`id_t1` int(11) default '0',
`id_t2` int(15) default '0',
`file` varchar(100) default '',
`status` int(1) default '0',
`onoff` int(1) NOT NULL default '1',
PRIMARY KEY (`id`)
)
Еще чуть не забыл значение ид должно быть случайно из table3
Вот мои попытки
$res=mysql_result(mysql_query("SELECT a.`id`
FROM `table3` a
JOIN `table2` b ON b.`onoff` =1 AND b.`status`=1 AND b.`ban` =0
JOIN `table1` c ON c.`ban` =0 AND c.`kr`>10 AND c.`onoff` =1
WHERE a.`file`<>'' AND a.`status`=1 AND a.`onoff` =1
ORDER BY RAND( )
LIMIT 1"),0);
Неактивен
Мой запрос не всегда выполняет поставленные условия.
То есть выдает результат абсолютно рандомно.
Неактивен
После ключевого слова "ON" должно следовать условие объединения таблиц
DarveL написал:
Общее условие: id.table1=id_t1.table2=id_t1.table3
, а не условия выборки.
SELECT a.`id` FROM `table1` c JOIN `table2` b ON b.id_t1=c.id JOIN `table3` a ON a.id_t1=c.id WHERE a.`file`<>'' AND a.`status`=1 AND a.`onoff` =1 AND b.`onoff` =1 AND b.`status`=1 AND b.`ban` =0 AND c.`ban` =0 AND c.`kr`>10 AND c.`onoff` =1 ORDER BY RAND() LIMIT 1
Отредактированно coin (14.02.2009 19:52:31)
Неактивен