サブスクライバーの数を取得するために使用する次のコードがあります。
SELECT provider_id,subcat_id, COUNT(user_id) AS subscribers
FROM subscribers WHERE subcat_id=5
AND provider_id=provider_id
GROUP BY provider_id
ORDER BY subscribers DESC LIMIT 10
provider_id
を含む providers テーブルへの外部キーですprovider_name
。
provider_id の外部キー値を取得し、テーブル プロバイダーから provider_name に置き換える結果を取得するにはどうすればよいですか? 内部結合を試みましたが、うまくいきませんでした。私の選択クエリは少し複雑なので、おそらく構文エラーです。
私が今得た結果は次のとおりです。
+----------+---------+-----------+
|provder_id|subcat_id|subscribers|
+----------+---------+-----------+
|2 |5 |5 |
+----------+---------+-----------+
|4 |5 |3 |
+----------+---------+-----------+
|1 |5 |1 |
+----------+---------+-----------+
しかし、私が欲しいのは:
+----------+-------------+---------+-----------+
|provder_id|provider_name|subcat_id|subscribers|
+----------+-------------+---------+-----------+
|2 |Alex |5 |5 |
+----------+-------------+---------+-----------+
SELECT subscribers.provider_id,subscribers.subcat_id, COUNT(user_id) AS サブスクライバー FROM サブスクライバー JOIN プロバイダー ON subscribers.provider_id=providers.provider_name WHERE subscribers.subcat_id=5 AND subscribers.provider_id=subscribers.provider_id GROUP BY subscribers.provider_id ORDER BY サブスクライバー DESCリミット 10
それはうまくいきません
で解決しました
SELECT s.provider_id,p.provider_name, s.subcat_id, COUNT(s.user_id) AS subscribers FROM subscribers s JOIN providers p ON s.provider_id=p.provider_id WHERE s.subcat_id=5 AND s.provider_id=s.provider_id GROUP BY provider_id ORDER BY サブスクライバー DESC LIMIT 10