стоит так делать? (делать из 4ех запросов 1 таки образом)

  • Автор темы Автор темы BeatBox
  • Дата начала Дата начала

BeatBox

Guest
стоит так делать? (делать из 4ех запросов 1 таки образом)

Посмотрите, пожалуйста.
стоит ли так делать:

$zapros1 = "select shit from layno";
$zapros2 = "select shit2 from layno2";
$zapros3 = "select shit3 from layno3";
$zapros4 = "select shit4 from layno4";
$testodrom = ($db->sql_query($zapros1,$zapros2 ,$zapros3,$zapros4));
$m = $db->sql_fetchrow($testodrom);

таким образом из 4ех мелких запросов делаю 1.
Делать так или нет? или разницы никакой?
 
Ты бы хоть попробовал этот бред запустить сначала, а?
С чего ты взял, что таким образом ты делаешь "из 4ех запросов 1"? с чего ты взял, что это вообще сработает?
ЧТО ты рассчитываешь получить в $m?

Единственное, что ты можешь вынести из этого топика - так это если у тебя таблицы layno* имеют одинаковую структуру, то тебе надо сделать из них одну.
 
да я написал, и жо этого пароверил - работало, но толкьо так часть, которая $zapros1 - остальные игнорировались.
Тоглда такой ворпос - мне нужно делать из одной таблицы 5 разных запросов, как это лучше сделать? учитывая что взять ужно:
count(field) from table where fueld > 0 and field <21
count(field) from table where fueld > 20 abd field <41
и так далее до 100 (всего 5 запросов).
Как это можно сделать один запросом?
 
Не знаю - пока еще не очень силен в БД, но что если использовать псевдонимы?
 
хм, если память не подводит то

SELECT layno.shift, layno2.shift2, layno3.shift3 FROM layno, layno2, layno3

а то что автор написал - глупость
 
ребят, вы форумом не ошиблись? Это не "мускуль и юмор".
 
Фанат
плиз, где я не прав? укажи
в ман и т.д.
 
Фанат если не сложно - напиши правильный ответ. Действительно нужно..
 
Как вариант:
[sql]select count(field) from table where field > 0 and field <101 group by CASE
WHEN field > 0 and field <21 THEN 1
WHEN field > 20 and field <41 THEN 2
WHEN field > 40 and field <61 THEN 3
WHEN field > 60 and field <81 THEN 4
WHEN field > 80 and field <101 THEN 5
END[/sql]
сорри, первый вариант был с очепяткой - исправил
 
Автор оригинала: Фанат
выполни свой запрос да посмотри
выполнил, все даные мне он вернул, без ошибок, пример который я привел - написан на основе запроса из книги Дюбуа
 
SelenIT если честно - я не нашел в документации инфу о функции CASE :( Ее MySQL поддерживает?
 
А вам вообще приятно работать с такими выражениями, как "shit from layno"?
 
Автор оригинала: SelenIT
Как вариант:
[sql]select count(field) from table where field > 0 and field <101 group by CASE
WHEN field > 0 and field <21 THEN 1
WHEN field > 20 and field <41 THEN 2
WHEN field > 40 and field <61 THEN 3
WHEN field > 60 and field <81 THEN 4
WHEN field > 80 and field <101 THEN 5
END[/sql]
сорри, первый вариант был с очепяткой - исправил
спасибо за код, только я непойму как им польщзоваться.. как мне переменной $first присвоить кол-во полей со значением больше 0 и меньша 21 и переменной $second - боле 20 и менише 41?
 
Автор оригинала: BeatBox
спасибо за код, только я непойму как им польщзоваться.. как мне переменной $first присвоить кол-во полей со значением больше 0 и меньша 21 и переменной $second - боле 20 и менише 41?
а зачем?
Операция присваивания =
 
что зачем?! я непойму как этим запросом пользоваться :(
 
BeatBox
Запрос вернет 5 рядов по одному значению в каждом. Значит, тебе нужно будет пять раз сделать этот твой $db->sql_fetchrow, каждый раз присваивая результат очередной переменной $first, $second, ..., $fifth. Очевидно, что удобнее использовать вместо этого цикл и массив.
 
Сверху