それぞれのテーブルの指定した列の値が一致するデータだけを取得します。基本となる構文は次の通りです。JOINの後に指定します。それぞのテーブルの結合するカラムをONの後にイコール(=)で結んで指定します。内部結合ではそれぞれのテーブルの指定したカラムの値が同じものを1つのデータとして取得します。どちらかのテーブルにしか値が存在しないデータは取得されません。JOINにONで結合規則を指定しても同じです。具体的な例で見てみます。次のような2つのテーブルを用意しました。内部結合を行うには、2つのテーブルで結合の対象となるカラムを指定します。次のように指定します。cate.id;上記の場合、「goods」テーブルの「cateid」カラムと「cate」テーブルの「id」カラムを使って結合します。データの取得データの取得は次のように行われます。「goods」テーブルの最初のデータの「cateid」カラムの値に対して、「cate」テーブルの「id」カラムの中に同じ値があるかどうかを調べます。存在した場合は「goods」テーブルのデータと「cate」テーブルの一致したデータと結合させてまとめて一つのデータとして取得します。同じように「goods」テーブルのデータを順に結合を行っていきます。「goods」テーブルの「cateid」カラムの値が「cate」テーブルの「id」カラムの値の中に一致するものがなかった場合はデータを取得しません。今回の場合であれば「cateid」カラムの値が5のデータは「cate」テーブルの「id」カラムの中に一致するものありませんので取得されません。結合されたデータの中から必要なカラムを指定してデータを取得します。結合された全データの中で、どのカラムを取得するかはSELECT文の後ろで指定します。カラムは「テーブル名.カラム名」の形式で指定して下さい。「goods」テーブルの「code」カラムと「cate」テーブルの「name」カラムの値を取得するには次のように記述します。cate.id;どちらかのテーブルにしか存在しないカラムを指定する場合はテーブル名を省略できます。「goods」テーブルの「code」カラムを取得したい場合、「cate」テーブルには「code」カラムは存在しませんので単に「code」と記載できます。それに対して「goods」テーブルの「name」カラムを取得したい場合には「cate」テーブルにも「name」カラムが存在するので必ずテーブル名を付けて「goods.name」と指定する必要があります。cate.id;上記のSQL文で実際に取得できるデータは次の通りです。複数のデータでカラムの値が一致する場合では同じテーブルを対象にした内部結合であってもテーブルの指定を入れ替えてデータを取得してみます。goods.cateid;まず「cate」テーブルの最初のデータの「id」カラムの値に対して、「goods」テーブルの「cateid」カラムの中に同じ値があるかどうかを調べます。存在した場合は「cate」テーブルのデータと「goods」テーブルの一致したデータと結合させてまとめて一つのデータとして取得します。今までと異なるのは「cate」テーブルの最初のデータの「id」カラムの値に一致するデータが「goods」テーブルには3つあるということです。この場合、それぞれのデータに対して結合が行われます。同じように「cate」テーブルのデータを順に結合を行っていきます。「cate」テーブルの「id」カラムの値が「goods」テーブルの「cateid」カラムの値の中に一致するものがなかった場合はデータを取得しません。今回の場合であれば「id」カラムの値が4のデータは「goods」テーブルの「cateid」カラムの中に一致するものありませんので取得されません。idnamecodecateidname1和書B0011旅行に行こう1和書B0021三国志1和書B0031趣味と実益2DVDD0012地球の歴史2DVDD0022宇宙旅行2DVDD0032七人の勇者3食品F0013栗きんとん3食品F0023ロールケーキサンプル実際に試してみます。次のようなテーブルを作成します。varchar(10));テーブルには次のようなデータを追加してあります。「goods」テーブルの「cateid」カラムと「cate」テーブルの「id」カラムを内部結合してデータを取得します。cate.id;必要なカラムだけを指定してデータを取得します。cate.id;取得したデータの2つの列が同じ名前になってしまっていますので別名を設定します。IKURA初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を多数行っています。