接続は、実際の外部キー(人工的に作成された 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
目次分離効果コマンドラインの説明関与する機能分離効果-- 別居前1,2,3,4 -- 別居後1 2 ...
目次1. ドラッグ効果の例2. CSS実装の原則3. CSS実装の詳細4. CSSレイアウト1. 固...
1. インデックスの利点と欠点利点: 高速検索、高速グループ化および並べ替えデメリット: ストレージ...
最近、MySQL オンラインでいくつかのデータ異常が発生しましたが、すべて早朝に発生しました。ビジネ...
MySql での時間比較の実装unix_timestamp() unix_timestamp 関数は...
1. 最左プレフィックス原則 - 複数の列にインデックスが付けられている場合は、最左プレフィックス原...
目次1. 配列を宣言して初期化する2. 合計、最小値、最大値を計算する3. 文字列、数値、オブジェク...
現在、コンピュータモニターの画面解像度はますます高くなる傾向にありますが、携帯電話などのモバイルデバ...
1 はじめに「Maven がワンクリックで Springboot を Docker リポジトリにデプ...
1. Canvas画像をCSS背景画像として使用するCSS ペイント API は、Canvas キャ...
この記事では、MySQL 5.7.17のインストールと設定方法を参考までに紹介します。具体的な内容は...
目次1. 日付までのタイムスタンプ2. UTCを北京時間に変換するWXS (WeiXin Scrip...
dd タグと dt タグはリストに使用されます。通常は <ul><li> タ...
この記事では、CSS スクロールバー セレクターを紹介し、Webkit ブラウザーと IE ブラウザ...
[LeetCode] 182.重複メールPerson という名前のテーブル内のすべての重複メールを...