MySQLで同じ列値を持つ行を返す方法は?
これにはGROUPBY句を使用します。まずテーブルを作成しましょう-
mysql> create table DemoTable -> ( -> StudentId int, -> StudentMarks int -> ); Query OK, 0 rows affected (4.71 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable values(23,58); Query OK, 1 row affected (0.70 sec) mysql> insert into DemoTable values(25,89); Query OK, 1 row affected (0.46 sec) mysql> insert into DemoTable values(26,58); Query OK, 1 row affected (1.13 sec) mysql> insert into DemoTable values(28,98); Query OK, 1 row affected (0.86 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
出力
+-----------+--------------+ | StudentId | StudentMarks | +-----------+--------------+ | 23 | 58 | | 25 | 89 | | 26 | 58 | | 28 | 98 | +-----------+--------------+ 4 rows in set (0.00 sec)
これは、MySQLで同じ列値を持つ行を返すクエリです-
mysql> select StudentMarks from DemoTable -> group by StudentMarks -> having sum(StudentId=23) > 0 and -> sum(StudentId=26) > 0;
出力
+--------------+ | StudentMarks | +--------------+ | 58 | +--------------+ 1 row in set (0.00 sec)
-
MySQLで異なるIDを持つ同じテーブルから共通の値を持つ行を取得します
このために、GROUPBYHAVING句を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1467 -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.64 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1467 value
-
そのテーブルの列値がMySQLの別のテーブルの列値と一致する場合にのみ、あるテーブルからデータを選択するにはどうすればよいですか?
このために、EXISTSとともにサブクエリを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1 -> ( -> Id int, -> SubjectName varchar(20) -> ); Query OK, 0 rows affected (0.58 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 val