2つのテーブルで、2つのcount(*)の結果を足し合わせるには?
2023-10-14 07:34:57
質問
2つのテーブルがあります。おもちゃとゲームです。
+--------------------+------------------+
| Field | Type |
+--------------------+------------------+
| toy_id | int(10) unsigned |
| little_kid_id | int(10) unsigned |
+--------------------+------------------+
+--------------------+------------------+
| Field | Type |
+--------------------+------------------+
| game_id | int(10) unsigned |
| little_kid1 | int(10) unsigned |
| little_kid2 | int(10) unsigned |
| little_kid3 | int(10) unsigned |
+--------------------+------------------+
小さな子供は複数のおもちゃを持つことができます。 小さな子供は一度に複数のゲームに参加することができます。
little_kidが関わっているおもちゃ+ゲームの総数を教えてくれるクエリが欲しいです。
基本的に、私はこれら2つのクエリの合計が欲しいのです。
SELECT COUNT(*) FROM Toys WHERE little_kid_id = 900.SELECT COUNT(*) FROM Toys WHERE little_kid_id = 900; SELECT COUNT(*) from Games WHERE little_kid1 = 900 またはlittle_kid2 = 900 OR little_kid3 = 900;
これを 1 つの SQL クエリで取得することは可能でしょうか。 もちろん、プログラム的に合計することはできますが、それはあまり望ましくありません。
(作為的な例でスキーマが非効率に見えることは承知しています。 スキーマを変更することはできないと仮定しましょう)。
どのように解決するのか?
ラップして、サブクエリを使用します。
SELECT
(SELECT COUNT(*) FROM Toys WHERE little_kid_id = 900)+
(SELECT COUNT(*) from Games WHERE little_kid1 = 900
OR little_kid2 = 900
OR little_kid3 = 900)
AS SumCount
ほらね!
関連
-
MySQL演算子(and, or, in, not)の具体的な使用方法
-
mysql5.7のインストールと、無料・長期利用を目的としたNavicateの導入プロセスについて
-
[解決済み] mysqladminのフラッシュホストでブロックを解除する方法
-
[解決済み] MySQLのプロセスリストを見つけ、それらのプロセスを終了させる方法は?
-
[解決済み] リスト項目の出現回数を数えるにはどうしたらいいですか?
-
[解決済み] JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] MySQLデータベースのテーブルのサイズを取得する方法は?
-
[解決済み] MySQL で特定のカラム名を持つすべてのテーブルを見つけるにはどうすればよいですか?
-
[解決済み] Postgres の全テーブルの行数を求めるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン