開発環境
- OS: OS X Lion - Apple
- データベース言語: SQL
- リレーショナルデータベース: MySQL
『初めてのSQL』(Alan Beaulieu 著、株式会社クイープ 翻訳、オライリー・ジャパン、2006年、ISBN4-8733-181-8) の5章(複数テーブルからのデータの取得)、5.5(練習問題)5-3を解いてみる。
5-3.
SQL文(BBEdit)
SELECT e.emp_id, e.fname, e.lname FROM employee e INNER JOIN employee mgr on e.superior_emp_id = mgr.emp_id WHERE e.dept_id != mgr.dept_id;
入出力結果(Terminal)
$ mysql -u lrngsql -p bank Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.5.24 MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show tables; +----------------+ | Tables_in_bank | +----------------+ | account | | branch | | business | | customer | | department | | employee | | individual | | officer | | product | | product_type | | tmp | | transaction | +----------------+ 12 rows in set (0.02 sec) mysql> desc employee; +--------------------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+----------------------+------+-----+---------+----------------+ | emp_id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | fname | varchar(20) | NO | | NULL | | | lname | varchar(20) | NO | | NULL | | | start_date | date | NO | | NULL | | | end_date | date | YES | | NULL | | | superior_emp_id | smallint(5) unsigned | YES | MUL | NULL | | | dept_id | smallint(5) unsigned | YES | MUL | NULL | | | title | varchar(20) | YES | | NULL | | | assigned_branch_id | smallint(5) unsigned | YES | MUL | NULL | | +--------------------+----------------------+------+-----+---------+----------------+ 9 rows in set (0.03 sec) mysql> SELECT e.emp_id, e.fname, e.lname -> FROM employee e INNER JOIN employee mgr -> on e.superior_emp_id = mgr.emp_id -> WHERE e.dept_id != mgr.dept_id; +--------+-------+-----------+ | emp_id | fname | lname | +--------+-------+-----------+ | 4 | Susan | Hawthorne | | 5 | John | Gooding | +--------+-------+-----------+ 2 rows in set (0.08 sec) mysql> quit Bye $
0 コメント:
コメントを投稿