MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

複数のテーブルからの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)

  1. 複数のテーブルのデータを使用してMySQLビューを作成するにはどうすればよいですか?

    MySQL UNION演算子は、2つ以上の結果セットを組み合わせることができるため、UNION演算子を使用して、複数のテーブルのデータを含むビューを作成できます。この概念を理解するために、次のデータを持つベーステーブル「Student_info」と「Student_detail」を使用しています- mysql> Select * from Student_info; +------+---------+------------+------------+ | id   | Name    | Address    | Subject &n

  2. 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),(