IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Совмещение двух запросов MYSQL (https://www.imho.ws/showthread.php?t=67925)

Psionic Vision 07.09.2004 20:46

Совмещение двух запросов MYSQL
 
Можно ли совместить два запроса select count c разными условиями в одном запросе?

Что то типа
SELECT count(*) AS c FROM table WHERE condition1
и
SELECT count(*) AS c FROM table WHERE condition2

При этом, мне нужно чтобы этот count выводился в одну и ту же переменную, над которой будут производиться вычисления.

Примерно так

SELECT count(*) AS a FROM table WHERE condition1
UNION
SELECT count(*)+a AS c FROM table WHERE condition2

Но ведь a во втором запросе не доступен.. Что же делать? Или это невозможно?

Sheryld 07.09.2004 21:19

юзай join

Psionic Vision 07.09.2004 21:26

А конкретней? :(

Psionic Vision 07.09.2004 22:48

При чем тут join и как именно я должен его юзать?

Sheryld 08.09.2004 10:22

наверное единственный способ в твоем случае - это сохранение результатов в некоторой переменной, непосредственно в скрипте.

а в твоем случае почему бы не написать просто:

select count(*) as cnt from table where condition1 and condition2

Hubbitus 08.09.2004 17:05

Цитата:

Sheryld:
а в твоем случае почему бы не написать просто:

select count(*) as cnt from table where condition1 and condition2
Только or, а не and :)

Sinker 08.09.2004 18:56

Может быть я и намудрил, но вот так попробуй
SELECT count(aa.key)+count(bb.key) FROM table aa, table bb WHERE aa.key=value1 and bb.key=value2

А вообще, правильно тут сказали,
select count(*) as cnt from table where condition1 or condition2

Sheryld 09.09.2004 00:41

да действительно or.

2Sinker
дык там одна и таже таблица, и все одинаковое, кроме условий. а если нужно сделать выборку из разных таблиц, то нужно использовать join(как правило данные связаны по ключевому полю. нет? меняйте структуру:))


Часовой пояс GMT +4, время: 20:57.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.