|
|
|
|
|
для: tAleks
(23.08.2006 в 20:17)
| | да. Вложенные запросы. SELECT на месте ссылок на таблицы.
Смысл ясен если прочесть его как
SELECT c1,c2,c3 FROM t1,t2,t3 | |
|
|
|
|
|
|
|
для: Trianon
(23.08.2006 в 20:03)
| | Что-то я не очень въезжаю, в этот запрос. Это что, вложеные запросы? Я с SQL занком 3 месяца. Поясните пожалуйста, для общего развития... | |
|
|
|
|
|
|
|
для: tAleks
(23.08.2006 в 19:49)
| | >Это значит результат выдается в столбик. А как тоже самое, но получить в строку?
>Чтобы потом mysql_fetch_assoc и получить массив.
Сегодня вечер извращений, да?
SELECT c1,c2,c3 FROM
(SELECT COUNT(id) as c1 FROM tbl1 WHERE user_id='$userid' AND hour='$i' AND date='$date')as t1,
(SELECT COUNT(id) as c2 FROM tbl2 WHERE user_id='$userid' AND hour='$i' AND date='$date')as t2,
(SELECT COUNT(id) as c3 FROM tbl3 WHERE user_id='$userid' AND hour='$i' AND date='$date')as t3
|
| |
|
|
|
|
|
|
|
для: Trianon
(02.06.2006 в 12:30)
| | Это значит результат выдается в столбик. А как тоже самое, но получить в строку?
Чтобы потом mysql_fetch_assoc и получить массив. | |
|
|
|
|
|
|
|
для: Shorr Kan
(02.06.2006 в 12:44)
| | 1. Не всё. Порядок строк никто не гарантировал. Нужно сделать так, чтобы из строк, которые такой запрос может вернуть в пестром беспорядке, Вы смогли бы извлечь полезные данные.
для этого добавлены 1..3 as n первым полем.
2. А я о чем? Оно надо - загонять данные в один запрос?
То есть надо. конечно, если у Вас с хостером борьба за них поштучно идет. Но это, всё ж, экзотика. | |
|
|
|
|
|
|
|
для: Trianon
(02.06.2006 в 12:30)
| | 1) Получается, UNION надо ставить просто между разными селектами, и всё?
2) Замерил и этот вариант... и тот... скорость неизменна - 0 секунд... | |
|
|
|
|
|
|
|
для: Shorr Kan
(02.06.2006 в 12:26)
| | Ну если так беспокоит, то
SELECT 1 as n, COUNT(id) as c FROM tbl1 WHERE user_id='$userid' AND hour='$i' AND date='$date'
UNION SELECT 2 as n, COUNT(id) as c FROM tbl1 WHERE user_id='$userid' AND hour='$i' AND date='$date'
UNION SELECT 3 as n, COUNT(id) as c FROM tbl1 WHERE user_id='$userid' AND hour='$i' AND date='$date'
|
| |
|
|
|
|
|
|
|
для: Trianon
(02.06.2006 в 11:56)
| | Ну у меня завелась в самом начале мысль:
<?
for($i=0;$i<24;$i++){
$a1=mysql_fetch_array(mysql_query("SELECT COUNT(id) FROM tbl1 WHERE user_id='$userid' AND hour='$i' AND date='$date';"));
$a2=mysql_fetch_array(mysql_query("SELECT COUNT(id) FROM tbl2 WHERE user_id='$userid' AND hour='$i' AND date='$date';"));
$a3=mysql_fetch_array(mysql_query("SELECT COUNT(id) FROM tbl3 WHERE user_id='$userid' AND hour='$i' AND date='$date';"));
print $i." | ".$a1[0]." | ".$a2[0]." | ".$a3[0]."<br>";
}//for
?>
|
или... хехе....
<?
function rq($tbl,$userid,$date,$i){
return mysql_fetch_array(mysql_query("SELECT COUNT(id) FROM $tbl WHERE user_id='$userid' AND hour='$i' AND date='$date';"));
}//function
for($i=0;$i<24;$i++){
$a1=rq('tbl1',$userid,$date,$i)));
$a2=rq('tbl2',$userid,$date,$i)));
$a3=rq('tbl3',$userid,$date,$i)));
print $i." | ".$a1[0]." | ".$a2[0]." | ".$a3[0]."<br>";
}//for
?>
|
Но я так подумал, что это менее верно и дольше, нежели единым запросом. Нет? | |
|
|
|
|
|
|
|
для: Shorr Kan
(02.06.2006 в 11:52)
| | Так а Вы сперва составьте три отдельных разных запроса.
Кстати, зачем их нужно объединять в один, если каждый из них должен возвратить по одному числу? | |
|
|
|
|
|
|
|
для: Trianon
(02.06.2006 в 11:47)
| | Поверьте, сейчас хотел попытаться-таки сам его составить... но просто уставился в поле для ввода sql-запроса, и не получается придумать. mysql.ru тоже решительно не захотел понятным стать... | |
|
|
|
|