複数のテーブルからのMySQLカウント(*)?
複数のテーブルでこれを実現するには、UNIONALLを使用します。
構文は次のとおりです
select sum(variableName.aliasName) from ( select count(*) as yourAliasName from yourTableName1 UNION ALL select count(*) as yourAliasName from yourTableName2 ) yourVariableName;
上記の構文を実装しましょう。ここでは、より多くのテーブルがあるサンプルデータベースを使用しています。
使用している2つのテーブルは
- userdemo
- wheredemo
これは、両方のテーブルのすべてのレコードを表示するためのクエリです。テーブル「userdemo」のレコードを表示するためのクエリは次のとおりです。
mysql> select *from userdemo;
以下は出力です
+--------+----------+------------------+ | UserId | UserName | RegisteredCourse | +--------+----------+------------------+ | 1 | John | Java | | 2 | Larry | C | | 3 | Carol | C++ | | 4 | Mike | C# | +--------+----------+------------------+ 4 rows in set (0.08 sec)
テーブル「wheredemo」のレコードを表示するためのクエリは次のとおりです。
mysql> select *from wheredemo;
以下は出力です
+------+---------+ | Id | Name | +------+---------+ | 101 | Maxwell | | 110 | David | | 1000 | Carol | | 1100 | Bob | | 115 | Sam | +------+---------+ 5 rows in set (0.20 sec)
上記の両方のテーブルからcount(*)を実装するためのクエリは次のとおりです
mysql> select sum(tbl.EachTableCount) -> from -> ( -> select count(*) as EachTableCount from userdemo -> UNION ALL -> select count(*) as EachTableCount from wheredemo -> )tbl;
以下は出力です
+-------------------------+ | sum(tbl.EachTableCount) | +-------------------------+ | 9 | +-------------------------+ 1 row in set (0.00 sec)
-
複数のテーブルのデータを使用してMySQLビューを作成するにはどうすればよいですか?
MySQL UNION演算子は、2つ以上の結果セットを組み合わせることができるため、UNION演算子を使用して、複数のテーブルのデータを含むビューを作成できます。この概念を理解するために、次のデータを持つベーステーブル「Student_info」と「Student_detail」を使用しています- mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject &n
-
MySQLから最後の10行を選択するにはどうすればよいですか?
MySQLから最後の10行を選択するには、SELECTステートメントとLimitの概念でサブクエリを使用できます。以下は例です。 テーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) テーブルにレコードを挿入します。 mysql> insert into Last10RecordsDemo values(1,John),(