---------- ---------- ----------
| TBL_1 | | TBL_2 | | TBL_3 |
---------- ---------- ----------
| id | | id | |TBL_1_id|
| foo | | bar | |TBL_2_id|
---------- ---------- ----------
私は、この特定のテーブルセットをMySQLに持っています。 TBL_3は、TBL_1とTBL_2の行を結合する複合表です。私はTBL_3を照会してTBL_1とTBL_2の内容を出力したいのですが、JOIN
という概念を把握できていないようです。私が読んだ、それは多少このようにする必要がありますに基づいて
:MySQLコンポジットテーブルJOIN QUERY
SELECT * tbl_3
FROMは、RIGHT(tbl_1.id = tbl_3.tbl_1_id、 tbl_2.id ON(tbl_1、tbl_2)に参加します= tbl_3.tbl_2_id)
WHERE tbl_3.id = 'some_id';
私は何も得ていません。また、私はそのクエリを微調整すると、行が返されますが、なぜIDKの理由は表示されません。どうしてこれなの?
**上記のクエリはこれと同じですか? tbl_3
FROM
SELECT *がRIGHT tbl_1.id = tbl_3.tbl_1_id
右tbl_2.id = tbl_3.tbl_1_id
tbl_3.id = 'some_id' にtbl_2をJOIN ON tbl_1をJOIN。
**編集:複数の結合/ワットを超えるクエリを解釈する際に、第一RIGHT JOIN
の積である第二RIGHT JOIN
返されるテーブルによって参照されて左表のですか?
ご希望の出力は何ですか? –
私はtbl_1.foo'とtbl_2.'bar'を出力したいと思います... – Valkyrurr
tbl_3を使用しているときにtbl_2.barが一致するかどうかにかかわらず、tbl_1.fooを出力しますか?その場合は、外部結合を使用する必要があります。そうでない場合は、tbl_3、tbl_1およびtbl_2に対してequijoin(プレーン・ジョイン)を使用します。内部結合の場合は、tbl_3をファクト表として使用する必要があります。 tbl_2の値がない場合は、tbl_1とtbl_2を外側のtbl_1に結合する必要があります。 –