SELECT people.first_name AS "First Name", people.last_name AS "Last Name", countries.name AS "Country1", territories.name AS "Territory1", cities.name AS "City1", countries.name AS "Country2", territories.name AS "Territory2", cities.name AS "City2"
FROM adb_people AS people
JOIN root_cities AS cities ON people.city1 = cities.id
AND people.city2 = cities.id
JOIN root_territories AS territories ON people.prov_state1 = territories.id
AND people.prov_state2 = territories.id
JOIN root_countries AS countries ON people.country1 = countries.id
私がここでやろうとしているのは、Country1(id)をCountry1(name)にリンクして名前だけを表示することです。 このコード例は、Country1、Territory1、City1がCountry2、Territory2、City2と同じ場合にのみ機能します。MySQLは同じテーブルに複数の結合をジョインしますか?
私は自分のJOINをどのようにしているのかイメージします。私は物事のSQL側では新しいです。私はインターネット上のジョインズ(Googleの検索と最初のいくつかのチュートリアルを読む)を読んだことがありますが、私が読んだことは何もこの場合の助けとなっていません。
私がここで間違っていることについては、本当に助けていただきたいと思います。たぶん、正しい方向に微笑んでいますか?
なぜ、私はそれをやっていないのですか?私は今それを実装し、それがどのようになっているかを伝えます。ありがとうございました! – rlemon
この答えはまだcity1 = city2の場合にのみ機能するという問題はありませんか? –
そうではありません。私はあなたが参照している場合は、私はコピー/貼り付けから選択部分で自分のテーブルのエイリアスを変更するのを忘れたので、クエリを編集しただけですか? –