sql >> データベース >  >> RDS >> Mysql

MySQL:結合の種類の簡単な内訳

    あなたのコメントに基づいて、それぞれの簡単な定義はW3Schools で最もよく見つかります。 各タイプの最初の行には、結合タイプの簡単な説明があります

    • JOIN:両方のテーブルに少なくとも1つの一致がある場合に行を返します
    • LEFT JOIN:右側のテーブルに一致するものがない場合でも、左側のテーブルからすべての行を返します
    • 右結合:左側のテーブルに一致するものがない場合でも、右側のテーブルからすべての行を返します
    • 完全結合:テーブルの1つに一致する場合に行を返します

    編集終了

    一言で言えば、あなたが与えたコンマ区切りの例

    SELECT * FROM a, b WHERE b.id = a.beeId AND ...
    

    は、テーブルaとbからすべてのレコードを選択し、テーブルをコンマで区切ります。これは、

    のような列でも使用できます。
    SELECT a.beeName,b.* FROM a, b WHERE b.id = a.beeId AND ...
    

    次に、b.id列とa.beeId列が例で一致する行の指示された情報を取得します。したがって、例では、b.idがaと等しいテーブルaとbからすべての情報を取得します。 beeId。私の例では、b.idがa.beeIdと等しい場合、bテーブルからすべての情報を取得し、a.beeName列からのみ情報を取得します。AND句もあることに注意してください。これは、改良に役立ちます。あなたの結果。

    mySQL結合と左結合に関するいくつかの簡単なチュートリアルと説明については、TizagのmySQLチュートリアルを参照してください。 KeithJ.BrownのWebサイト もチェックしてください。 結合の詳細については、これも非常に優れています。

    これがお役に立てば幸いです



    1. Rails 3.1:時間範囲内のレコードのPostgresへのクエリ

    2. Ubuntu16.04でのMariaDB10.0から10.3.9へのアップグレード

    3. Postgresで関数のオーバーロードを無効にする方法はありますか

    4. MySQLはWHEREIN句でインデックスを使用していませんか?