接続は、実際の外部キー(人工的に作成された 2 つのテーブル間の対応関係を指します。対照的に、FORGIEN KEY は物理外部キーとも呼ばれます)のクエリ、更新、および確立に使用できます。 テーブル接続の本質は外部キーの逆制約である 接続条件 接続条件を設定するには ON を使用するか、代わりに WHERE を使用することもできます。 一般的に
無条件 JOIN 内部結合の本質は、デカルト積です。 [INNER] JOIN 内部結合 MySQL では、JOIN、CROSS JOIN、INNER JOIN は同等です。 内部結合は交差を意味し、結合条件を満たすテーブル A と B のレコードのみが表示されます。接続条件を満たさないレコードは表示されません。 商品ID、商品名、カテゴリ名を選択します tdb_goodsより 内部結合 tdb_goods_cate tdb_goods.cate_id を ON にします。 内部結合を使用して複数のテーブルを更新します。 --スペースを節約するために、tdb_goods テーブルに中国語で保存されている goods_cate を tdb_goods_cates テーブル内の対応する cate_id に変更します。UPDATE tdb_goods 内部結合 tdb_goods_cates ON goods_cate=カテゴリ名 goods_cate=cate_id を設定します。 --tdb_goods 変更するテーブルの名前 --tdb_goods_cates 関連する付録 --goods_cate=cate_name 2つのテーブルの対応する列の関係 --goods_cate=cate_id; 値を設定する 外部結合 内部結合は外部結合よりも頻繁に使用されます。 フィールドが一方のテーブルにのみ存在する場合、もう一方のテーブルのフィールドはNULLを返します。 LEFT [OUTER] JOIN 左外部結合 左側のテーブルにすべてのレコードを表示し、右側のテーブルに接続条件を満たすレコードを表示します。
RIGHT [OUTER] JOIN 右外部結合 右側のテーブルにすべてのレコードを表示し、左側のテーブルには接続条件を満たすレコードを表示します。 複数テーブルの結合 2つのテーブルを結合するのと同様 たとえば、3 つのテーブルの接続は次のようになります。 商品ID、商品名、b.カテゴリ名、c.ブランド名、商品価格を選択します。 製品から INNER JOIN products_cate AS b a.goods_cate = b.cate_id の場合 INNER JOIN products_brand AS c a.brand_name = c.brand_id; の場合 自己結合 無制限の分類データテーブルを設計する 同じテーブルに親クラスと子クラスの両方があり、基本的にはツリーです。 同じデータ テーブルに接続してクエリを実行できます。 --親クラスIDに対応する名前を検索します SELECT s.type_id,s.type_name,p.type_name AS parent_name tdb_goods_types から s へ tdb_goods_types を p として左結合する s.parent_id=p.type_id を ON にします。 --サブクラスIDに対応する名前を検索します SELECT p.type_id,p.type_name,s.type_name AS child_name tdb_goods_types から p へ tdb_goods_types を s として左結合 p.type_id=s.parent_id をオンにします。 -- 子の数を調べる SELECT p.type_id,p.type_name,COUNT(s.type_name) AS child_count tdb_goods_types から p へ tdb_goods_types を s として左結合 オン p.type_id=s.parent_id GROUP BY p.type_name p.type_id で並べ替えます。 複数のテーブルのクエリと削除 ここでは、自己結合を使用して 2 つのテーブルをシミュレートし、テーブル内の重複する項目を削除し、goods_id が小さいレコードを保持します。 t1を削除 tdb_goods から t1 LEFT JOIN(--goods_nameの重複レコードを選択SELECT goods_id,goods_name tdb_goodsより GROUP BY goods_name --MySQL 5.7.5 以降のバージョンでは、only_full_group_by SQL モードが有効になります。選択された列は、グループ内にあるか、集計列 (SUM、AVG、MAX、MIN) である必要があります。HAVING COUNT(goods_name)>=2 はここでは有効になっていません。 AS t2 --t1 と t2 を左結合します。実際には、内部結合と右結合も可能です。ON t1.goods_name=t2.goods_name --t1 と t2 の結合条件 WHERE t1.goods_id>t2.goods_id; --LEFT JOIN 結果セットで t1.goods_id>t2.goods_id を満たすレコードを選択します 理解を助けるために、LEFT JOIN の結果は次のようになります。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: Docker Swarm を使用してサービスのローリング アップデートを実装するためのサンプル コード
>>: 3 階層ナビゲーション メニューを実現するための js+css
まず、updatexml()関数を理解する UPDATEXML (XML ドキュメント、XPath ...
例えば: <link rel="スタイルシート" href="h...
(P4) Web 標準は一連の標準で構成されています。中心となる概念は、Web ページの構造、スタイ...
目次1. ブロックスコープとは何ですか? 2. ブロックスコープが必要なのはなぜですか? 3. 関数...
WeChat 8.0 アップデートの主な特徴は、アニメーション絵文字のサポートです。送信するメッセー...
JavaScript は多くの素晴らしい機能を備えています。この記事では、作業効率の向上とコードのデ...
Zabbix サーバー環境プラットフォームZABBIX バージョン 4.4セントOS8 MySQL ...
Windows リモート デスクトップを使用してサーバーに接続したことがある人なら、リモート デスク...
インストール手順 rpm -ivh mysql-コミュニティ-共通-5.7.18-1.el7.x86...
HTMLコード:コードをコピーコードは次のとおりです。 <td align="cen...
以下のように表示されます。 //managefee_managefee テーブルの年と月を照会し、c...
プログラマーは MySQL を扱う機会が多く、毎日触れているとも言えますが、MySQL テーブルには...
開発には常にデータが必要です。サーバーとしての Linux では、テスト データを格納するためのデー...
1. トランザクションとは何ですか?データベース トランザクション (略称: トランザクション) は...
準備1. 仮想マシンを起動する2. gitツールルートアカウントでログインルートアカウントを使用して...