Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   вопрос по sql (https://forum.antichat.xyz/showthread.php?t=105025)

malik555 06.02.2009 21:54

вопрос по sql
 
Добрый день

Код:


$u = mysql_query("SELECT     

SUM(users.money) as u_money, 
SUM(admin.money) as l_money   

FROM      users,admin");                               

$u = mysql_fetch_array($u);                                     


print "$u[u_money] <br/> $u[l_money]";


Почему он выдат суму в 2 раза больше чем записанно ?

blaga 07.02.2009 07:33

судя по факу он выдает сумму столбца. перепроверь данные в БД.

malik555 07.02.2009 14:54

когда считаем в адной таблице то все правельно

Код:


$u = mysql_query("SELECT 

 SUM(money) as l_money       

FROM  admin");                                   

$u = mysql_fetch_array($u);



print " $u[l_money]";


а когда в двух то результат в 2 раза больше

VDShark 07.02.2009 16:01

Дело тут в этом
Код:

FROM      users,admin
По сути это есть декартово произведение, т.е. комбинация всех столбцов в первой таблице и всех столбцов во второй таблице. Мало того что это неправильно, так это еще и жрет вычислительные ресурсы :)
Сделать можно так (если я правильно понял структуру):
Код:

SELECT
(SELECT SUM(money) FROM users) AS u_money,
(SELECT SUM(money) FROM admin) AS a_money


malik555 13.02.2009 01:06

А почему с UPDATE так не получается

Код:

mysql_query("UPDATE    (UPDATE users SET money='ppp'  WHERE id='edfcf01055043f5b473ba4365ebb8f78')    ");

VDShark 13.02.2009 14:43

Эм... во первых так не получится, а во вторых я стесняюсь спросить - ты чего хочешь сделать то?)

malik555 13.02.2009 16:03

я оптимизирую запросы на сайте , Мне так полюбился sql - что я теперь - все пытаюсь впихнуть в один запрс с кучей параметров - и проверок !

MuXaJIbI4 13.02.2009 16:43

а ты уверен что запихнув все в один запрос работаь будет быстрее ... сделай EXPLAIN для своих запросов и подумай еще раз


Время: 10:06