開発プロセスでは、複数のクエリ結果を直接表示することがよくありますが、どのようにクエリを実行すればよいでしょうか?この記事は SQL の学習に関するものです。SQL の UNION キーワードとその使用方法を見てみましょう。皆さんのお役に立てれば幸いです。
#SQL の UNION キーワードは、複数のクエリ条件の結果を表示します。
UNION の中国語の意味は結合、つまり 2 つ以上の SELECT ステートメントの結果を結合することです。使用上のヒントは次のとおりです。
以下に示すように、前章で紹介したデータをデモ データとして使用します
テーブル s_user
とテーブル s_user_1
CREATE TABLE `s_user` ( `userid` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `pass_word` varchar(255) DEFAULT NULL, `salt` varchar(255) DEFAULT NULL, `state` varchar(255) DEFAULT NULL, `create_time` datetime DEFAULT NULL, PRIMARY KEY (`userid`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
をそれぞれ作成します。テスト データは次のとおりです。
INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小米', '小米', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小红', '小红', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小黄', '小黄', '123123', '123', '1', '2022-02-10 19:48:43');
UNION 内の各 SELECT ステートメントは同じ番号を持つ必要があります。 of columns: query first SQL
SELECT * FROM `s_user` UNION SELECT * FROM `s_user_1`
with the 同じカラムをすべてのカラムにクエリすると、以下のような実行結果になることがわかります。
最初のクエリがすべての列に対するもので、2 番目のクエリが 3 つのフィールドに対するものである場合、クエリの結果はどうなりますか? 次に、次の SQL を実行します:
エラー使用法
SELECT * FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`
##エラー メッセージ: 異なる数の列をクエリするために使用された SELECT ステートメント
正しい使用方法
SELECT userid,name,pass_word FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`
データ型
SELECT userid,name,create_time FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`
列の順序
SELECT create_time,userid,name FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`
UNION と UNION ALL の違い
INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (3, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43');
最初に実行:
SELECT user_name,name,pass_word,salt FROM `s_user` UNION SELECT user_name,name,pass_word,salt FROM `s_user_1`
実行結果:
#もう一度実行
SELECT user_name,name,pass_word,salt FROM `s_user` UNION ALL SELECT user_name,name,pass_word,salt FROM `s_user_1`
実行結果:
UNION関連付けでは重複項目が削除されるのに対し、UNION ALLでは重複データは削除されずにすべての値がクエリされることがわかります。
結論
推奨学習:
mysql ビデオ チュートリアル以上がSQL 入門学習: UNION キーワードの使用法の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。