我有2個表:連接2個MySQL查詢
用戶
ID |用戶
喜歡
ID |所有者|日期
而這個查詢:
$owner_result = $connector->query("SELECT id FROM users");
while($owner = $connector->fetchArray($owner_result))
{
$rs = $connector->query("SELECT count(id) AS num FROM likes
WHERE date > DATE_SUB(NOW(), INTERVAL 1 WEEK)
AND owner='$owner[id]'
ORDER BY num DESC LIMIT 5");
while($rw = $connector->fetchArray($rs))
{echo "This owner ($owner[id]) has $rw[num] likes this week";}
}
我想我做的是回到我5 users.id與中行最大ammount的行喜歡表。 我的查詢返回的只是$ owner [id],但不是每個人都喜歡。而且我想查詢的性能是非常低的,以及因爲我的查詢檢查喜歡的量爲每users.id喜歡表,但它可能是喜歡表不包含一些用戶。 ID。
任何解決我的問題或改善我的查詢的建議將非常受歡迎。 謝謝。
謝謝!正在工作 –
@Valerius Mazare:你的直覺是對的;運行單個查詢並從MySQL服務器獲取單個結果集通常要比運行多個查詢執行「循環」更有效。 (這也使得代碼更簡潔。)但是,它並不總是*更高效;有一些邊界情況下,運行優化的單例查詢實際上可能比具有可怕訪問計劃的怪異查詢更有效,但這比規則更多例外。) – spencer7593