[更新しました]
1つのテーブルで定義された3つのテーブルがあり、これら3つのテーブル間の関係は、次のような別のテーブルで定義されています。
表1:wp_pods_cities [Cities PODS]
item_id city -------- ---------- 1 Albany 2 Perth 3 Albany 4 Hollywood 5 Albany 6 San Diego 7 Denpasar
表2:wp_pods_regions [地域PODS]
item_id region -------- ------------------ 1 Western Australia 2 California 3 Texas 4 Bali
表#3:wp_pods_countries [国PODS]
item_id country -------- -------------- 1 Australia 2 United States 3 Indonesia
表4:wp_posts [投稿タイプ]
pod_id pod_name post_type ------- ---------- ---------- pod_1 countries pods pod_2 regions pods pod_3 cities pods
表#5:wp_podsrel [PODS関係]
rel_id pod_id item_id related_pod_id related_item_id ------- ------- -------- --------------- ---------------- 1 pod_2 1 pod_1 1 2 pod_2 2 pod_1 2 3 pod_2 3 pod_1 2 4 pod_2 4 pod_1 3 5 pod_3 1 pod_2 1 6 pod_3 2 pod_2 1 7 pod_3 3 pod_2 2 8 pod_3 4 pod_2 2 9 pod_3 5 pod_2 3 10 pod_3 6 pod_2 3 11 pod_3 7 pod_2 4
注:上記の表は、WordpressでPODS CMSプラグインによって作成されていますが、ここで読みやすくするために簡略化されています。実際のテーブルにも数千のデータがあります。
やりたいこと
定義されているのと同じ都市(この場合はAlbany)と、それらが属する地域、つまり国をリストします。
期待される結果:
city region country ------- ------------------ -------------- Albany Western Australia Australia Albany California United States Albany Texas United States
私が試したこと
SELECT ct.city, rg.region, ctr.country
FROM wp_pods_cities AS ct
INNER JOIN wp_podsrel AS rel ON ct.item_id = rel.item_id
AND rel.pod_id IN ('pod_3', 'pod_2')
INNER JOIN wp_pods_regions AS rg ON rel.related_item_id = rg.item_id
INNER JOIN wp_pods_countries AS ctr ON rel.related_item_id = ctr.item_id
WHERE ct.city = 'Albany'
ORDER BY ct.city
これにより、都市とその関連地域がわかりますが、国は関連していません。上記のサンプル結果を達成するにはどうすればよいですか?
よろしくお願いします。