2
我目前有以下查詢(以及一些圍繞vB代碼)。我希望我可以將它變成單個SELECT語句,而不必在每個頁面上運行10個以獲取個人名稱。MySQL - 組合多個查詢
$results = $db->query_read_slave("
SELECT user.id AS steam, user.skills AS level
FROM wcsp.wcgousers AS user
WHERE race = '_wcs_'
ORDER BY ABS(user.skills) DESC LIMIT 10
");
$rank = 1;
while ($user = $db->fetch_array($results)) {
$result = $db->query_first("
SELECT old.name AS name
FROM wcsp.warn_oldnames AS old
WHERE id = '$user[steam]'
ORDER BY lasttime
DESC LIMIT 1
");
$listing[] = array("id" => $user['steam'], "level" => $user['level'], "name" => $result['name'], "rank" => $rank);
$rank += 1;
}
我已經試過LEFT JOIN,但我遇到的問題是,我需要在左子查詢JOIN類似:
SELECT user.id AS steam, user.skills AS level, names.name AS name
FROM wcsp.wcgousers AS users
LEFT JOIN
(
SELECT names.name
FROM wcsp.warn_oldnames AS names
WHERE id = wcsp.wcgousers.id
ORDER BY lasttime DESC LIMIT 1
) AS names
ON names.id = users.id
WHERE users.race = '_wcs_'
哪個都不行由於不同的數據庫檢查在子查詢中。
你明白我的意思了。這工作得很好。非常感謝,我從來沒有想過要在子查詢中做多個INNER JOIN。 – Josh
不客氣的':D'很高興幫助.. –