mysqlで複数テーブルクエリを実行する方法

青灯夜游
リリース: 2020-09-16 09:17:20
オリジナル
58348 人が閲覧しました

複数テーブル クエリの Mysql メソッド: 1. SELECT 句を使用してクエリを実行する; 2. テーブルのエイリアスを使用してクエリを実行する; 3. 内部結合を使用してクエリを実行する; 4. ネストを使用してクエリを実行する; 5. クエリを実行する複数のテーブル結合を通じて。

mysqlで複数テーブルクエリを実行する方法

#MySQL で複数テーブルのクエリを実行するにはどうすればよいですか?次の記事では、複数テーブルのクエリを実行するための MySQL メソッドをいくつか紹介します。

(推奨チュートリアル: mysql ビデオ チュートリアル )

1. 複数テーブル クエリに SELECT 句を使用する

SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件
ログイン後にコピー

例:

SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE a.id=b.id
ログイン後にコピー

注: 上記のコードでは、2 つのテーブルの id フィールド情報が同じであるという条件に基づいて 2 つのテーブル間の関連付けが確立されていますが、この方法で使用するべきではありません。実際の開発では、主キー制約と外部キー制約を使用するのが最善です。実現するには

2. 複数テーブルのクエリにはテーブル エイリアスを使用します。

例:

SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065  a,tb_demo065_tel  b WHERE a.id=b.id AND b.id='$_POST[textid]'
ログイン後にコピー

SQL 言語では、テーブルの別名を指定する方法:

1 の 2 つを使用できます。

SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065 AS a,tb_demo065_tel AS b WHERE a.id=b.id
ログイン後にコピー
# のようにキーワード AS を使用して指定します。 ##2. テーブル名の直後にテーブルのエイリアスを追加して、

#

SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065  a,tb_demo065_tel  b WHERE a.id=b.id
ログイン後にコピー
を実現します。
テーブル エイリアスを使用する場合は、いくつかの点に注意する必要があります。

##●(1エイリアスは通常、短縮されたテーブル名。接続内のテーブル内の特定の列を参照するために使用されます。テーブル内に同じ名前の列が複数ある場合は、列名をテーブル名またはテーブル エイリアス

# で修飾する必要があります。テーブルエイリアスが定義されている場合、テーブル名は使用できません。


3. 単純なネストクエリ (サブクエリ、内部結合)

サブクエリ: サブクエリは SELECT クエリです。単一の値を返し、SELECT、INSERT、UPDATE、DELETE ステートメントまたはその他のクエリ ステートメントにネストされています。式が使用されている場所であればどこでもサブクエリを使用できます。例:

SELECT id,name,sex,date FROM tb_demo068 WHERE id in(SELECT id FROM tb_demo068 WHERE id='$_POST[test]')
ログイン後にコピー

内部結合: クエリ結果をクエリ結果として使用します。 WHERE 句のクエリ条件は内部結合と呼ばれます

SELECT filedlist FROM table1 [INNER] JOIN table2 ON table1.column1 = table2.column1
ログイン後にコピー

このうち、filedlist は、表示されるフィールド INNER は、テーブル間の接続モードが内部接続であることを示し、table1.column1=table2.column1 が使用されます。

SELECT a.name,a.address,a.date,b.chinese,b.math,b.english FROM tb_demo065 AS a INNER JOIN tb_demo065_tel AS b on a.id=b.id
ログイン後にコピー

4. 複雑な埋め込みネストされたクエリ

複数のテーブル間のネストされたクエリは、述語 IN によって実現できます。構文形式は次のとおりです。

test_expression[NOT] IN{
 subquery
}
ログイン後にコピー

パラメータの説明: test_expression は SQL 式を指し、サブクエリには特定の結果セットのサブクエリが含まれます。

複数テーブルのネストされたクエリの原理:ネストされたテーブルの数に関係なく、テーブル間には何らかの相関関係が必要です。この相関関係は、クエリを実装する WHERE 句によって確立されます。

5. 複数テーブルの結合クエリ

SQL ステートメントで UNION を使用すると、異なるテーブルの修飾されたデータ情報を同じ列に表示できます。例:

SELECT * FROM tb_demo074_student UNION SELECT * FROM tb_demo074_fasten
ログイン後にコピー

UNION を使用する場合は、次の点に注意する必要があります。次の 2 点:
#● UNION 演算子を使用して結合されたステートメントでは、列名、算術式、集計関数など、すべての選択リスト内の式の数が同じである必要があります。

#●各クエリテーブルでは、対応する列のデータ構造が同じである必要があります。

6. 複雑な内部結合クエリ

複雑な内部結合クエリは、基本的な内部結合クエリに基づいており、次のようなクエリ条件が追加されています。

SELECT a.name,a.address,a.date,b.chinese,b.math,b.english FROM tb_demo065 AS a INNER JOIN tb_demo065_tel AS b on a.id=b.id WHERE b.id=(SELECT id FROM  tb_demo065 WHERE tb_demo065.name='$_POST[text]')
ログイン後にコピー
つまり、テーブル間の関連付けを実現する本質は、2 つのテーブル間に共通のデータ項目または同じデータ項目が存在することです。2 つのテーブルは、WHERE 句または INNER JOIN...ON ステートメントを通じて接続されます。クエリ。

以上がmysqlで複数テーブルクエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート