|
|
|
| Здравствуйте. У меня имеется два запроса:
SELECT XUsers.ID, XUsers.login, XUsers.joinDate, XUsers.authDate FROM `XUsers` WHERE XUsers.partnerID = 67 - Выборка из таблицы пользователей всех пользователей, которых привел пользователь с ID67.
SELECT SUM(`amount`) FROM `XUsersTrans` WHERE `userID` = 67 AND `description` LIKE '%Парнерские начисления с реферала ID#66%' - в истории транзакций посчитать партнерские начисления с выбранного пользователя.
|
На PDO решение этой проблемы выглядит так:
$sqlResult = DB()->query( 'SELECT * FROM `XUsers` WHERE `partnerID` = '.XUsers::getThisUserID().' ORDER By `ID` DESC' )->fetchAll( PDO::FETCH_ASSOC );
for( $i = 0; $i < count( $sqlResult ); $i++ ) {
$sqlResult[$i]['earnings'] = DB()->query( 'SELECT SUM(`amount`) FROM `XUsersTrans` WHERE `userID` = '.XUsers::getThisUserID().' AND `description` LIKE \'%Парнерские начисления с реферала ID#'.$sqlResult[$i]['ID'].'%\'' )->fetchColumn();
}
|
Но в моем варианте получается вложенный запрос, я уверен что это можно объеденить в один. Пожалуйста, помогите | |
|
|
|
|
|
|
|
для: pavluxa09
(10.10.2011 в 10:02)
| | А второй запрос сколько записей возвращает? Одну? | |
|
|
|
|
|
|
|
для: cheops
(10.10.2011 в 12:08)
| | Да, он считает сумму полей `amount` нескольких строк по заданному условию | |
|
|
|
|
|
|
|
для: pavluxa09
(10.10.2011 в 10:02)
| |
SELECT
XUsers.ID,
XUsers.login,
XUsers.joinDate,
XUsers.authDate,
(SELECT SUM(`amount`)
FROM `XUsersTrans`
WHERE
`userID` = 67 AND
`description` LIKE '%Парнерские начисления с реферала ID#66%') AS `sum`
FROM `XUsers`
WHERE XUsers.partnerID = 67
|
| |
|
|
|