SAK 図書館
MySQL 編10 - スカラー副問い合わせ、件数指定、LIMIT、HAVING、USING
■スカラー副問い合わせ
・MySQL では、スカラー副問い合わせはサポートされていないようである。
■インラインビュー
・MySQL では、インラインビューはサポートされていないようである。
■件数指定 LIMIT
・先頭から 3 件問い合わせるには、次のようにする。
access の top と同じことができる。
(TOP 10 取得、表示行制限、レコード数限定、件数指定、表示件数)
(1 レコード取得、1 件取得)
select * from testm
order by key1
limit 0, 3
;
+------+-------+-------+-------+
| key1 | data1 | data2 | data3 |
+------+-------+-------+-------+
| a001 | 1 | 2 | 3 |
| a011 | 1 | 2 | 3 |
| b002 | 10 | 20 | 30 |
+------+-------+-------+-------+
・先頭レコードを問い合わせるには、次のようにする。
select * from testm
where key1 like 'a%'
order by key1
limit 0, 1
;
+------+-------+-------+-------+
| key1 | data1 | data2 | data3 |
+------+-------+-------+-------+
| a001 | 1 | 2 | 3 |
+------+-------+-------+-------+
・最後から 3 件問い合わせるには、ソートオーダを逆にすれば良い。
select * from testm
order by key1 desc
limit 0, 3
;
+------+-------+-------+-------+
| key1 | data1 | data2 | data3 |
+------+-------+-------+-------+
| c003 | 100 | 200 | 300 |
| b002 | 10 | 20 | 30 |
| a011 | 1 | 2 | 3 |
+------+-------+-------+-------+
■HAVING
・集計結果に対する問い合わせ条件を指定する。
select key1, count(*), sum(data1), avg(data1) from testm
group by key1
having sum(data1) > 10;
+------+----------+------------+------------+
| key1 | count(*) | sum(data1) | avg(data1) |
+------+----------+------------+------------+
| c003 | 1 | 100 | 100.0000 |
+------+----------+------------+------------+
■USING
・項目で結合する。(この例は悪い。)
select * from test2m left join testm
using (key1);
select * from test2m left join testm
using (key1);
■CROSS JOIN
・Oracle の「,」標記と同じ。(クロス結合、クロスジョイン)
select * from test2m cross join testm
where test2m.code1 = testm.key1;
+-------+-------+------+-------+-------+-------+
| key1 | code1 | key1 | data1 | data2 | data3 |
+-------+-------+------+-------+-------+-------+
| abc01 | a001 | a001 | 1 | 2 | 3 |
| abc02 | a011 | a011 | 1 | 2 | 3 |
+-------+-------+------+-------+-------+-------+
■NATURAL JOIN
・同じ名前の列を自然結合する。(ナチュラルジョイン)
(この例は悪い。)
select * from test2m natural left join testm;
+-------+-------+------+-------+-------+-------+
| key1 | code1 | key1 | data1 | data2 | data3 |
+-------+-------+------+-------+-------+-------+
| abc01 | a001 | NULL | NULL | NULL | NULL |
| abc02 | a011 | NULL | NULL | NULL | NULL |
| abc03 | z999 | NULL | NULL | NULL | NULL |
+-------+-------+------+-------+-------+-------+
■MySQL 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料