2 대신 1 개의 쿼리를 사용하여이를 수행하는 올바른 구문은 무엇입니까?중첩 쿼리 구문 개선
$result = mysql_query(SELECT * FROM users);
while($row = mysql_fetch_array($result)){
$result = mysql_query(SELECT SUM(balance) FROM users_account WHERE uid=$row[id]);
}
2 대신 1 개의 쿼리를 사용하여이를 수행하는 올바른 구문은 무엇입니까?중첩 쿼리 구문 개선
$result = mysql_query(SELECT * FROM users);
while($row = mysql_fetch_array($result)){
$result = mysql_query(SELECT SUM(balance) FROM users_account WHERE uid=$row[id]);
}
이 모든 레코드를 반환은 USER_ACCOUNT 사용자 정보 테이블 형태 : -
SELECT SUM(ua.balance),u.*,ua.* FROM users_account ua
left join users u on ua.users_account=u.id
GROUP BY u.id
$result = mysql_query(SELECT a.*, b.SUM(balance) AS user_balance FROM users a, users_account b WHERE uid=$row[id]);
당신은 내부 사용자 테이블로 두 테이블 그룹에 가입해야합니다. SELECT 절에 열을 더 추가 할 수 있으며, 동일한 열을 GROUP BY 절에 추가하여 표준 SQL 문을 가져야합니다.
$query = " SELECT u.uid, SUM(a.balance)
FROM users_account a
INNER JOIN users u
ON u.uid = a.uid
GROUP BY u.uid";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
...
필요하면 문자열을 연결하십시오.
@MichaelLWatson을, 이건 당신을위한 솔루션입니다? 나는 대답을 개선해야합니까? – danihp