как вывести в одну строчку данные из нескольких запросов: тоесть я понимаю что можно так: но можно както сократить чтоб базе меньше напряга было? PS запросы все одинаковые меняется только ID. спасибо.
что именно тебе надо? если ты хочешь вывести все где разные ид то сделай или тебе ножно это все вернуть в одной строке? и насчет ид они ограничены или тебе нужны все?
нет вы непоняли вот посмотрите что делает запрос который я привел- он не выводит несколько рядов! он выводит один ряд. просто меня интересует можно ли както менее нагружать сервер чтоб вывести тиа того кк если б было select name from tabl where id=1 or id=2 or id=3 потом те записи которые выдает этот запрос пихались в одну строчку и выводились как результат.
Проще ты никак не сделаешь, чтобы менее нагружать базу и не делать кучу идентичных запросов, лучше сделать один а там его уже просто правильно обработать и подать ответ на экран в том виде каком надо, но обрабатывать нужно уже не средствами mssql.
нет, это же чисто база данных ЗЫ: я чегото недопер как у тебя это работает Code: select (select name from tabl where id=1)+(select name from tabl where id=2)+(select name from tabl where id=3) в результате этого запроса должен же 0 получиться, + ведь это арифметическое сложение =)
если тип name не int то конкатенация иначе как ты скзал сложение. ну просто думал мож есть всетаки какаянить функция работы с такой фигней типа как с массивом. видимо нету (
Впринципе СУБД особого напряга от такого и нет, если мы говорим о стандартных СУБД работающих с жестким диском (а мы о них и говорим, так как mssql ей является ) а не о новомодных СУБД, в основном размещающих данные в оперативке А дело тут вот в чем. Основные временные затраты связаны с дисковыми операциями. При запросе какой-либо записи, эта запись ищется на диске, и считывается не одна эта запись а страница (обычно даже несколько страниц), которая размещается в оперативке (прим. Страницей называется минимальная порция данных, считываемых с диска за одну дисковую операцию. В mssql, если мне не изменяет память, страница в стандарте равна 8 кб). И вот - дальше уже работа идет не с диском, а с оперативной памятью. То бишь если твои записи, которые ты вибыраешь были соседними (в пределах одной страницы например) - обращений к диску больше не будет, и на скорости/нагрузке это практически не скажется.