私は 2 つのテーブルを持っています。タイトルにあるように、二重内部結合のようなものが必要です。それが機能するかどうかはわかりませんが、簡単な方法があるはずです。
私が持っているのは、うまく機能するこのステートメントです:
SELECT
t1.id img_id, t1.nav_id img_nav_id, t1.name img_name, t1.img_title img_title, t1.img_text img_text,
t2.id nav_id,t2.parent_id nav_parent_id, t2.name nav_name, t2.directlink nav_directlink
FROM images t1
INNER JOIN navigation t2
ON t2.id=t1.nav_id
ORDER BY RAND() LIMIT 0,101
今t2(ナビゲーションテーブル)はこのようになります
+----+-----------+------------------+------------------+------+
| id | parent_id | name | directlink | rang |
+----+-----------+------------------+------------------+------+
| 1 | 0 | Home | home | 0 |
| 3 | 0 | Architektur | architektur | 1 |
| 7 | 0 | Design | design | 2 |
| 8 | 0 | Contact | contact | 3 |
| 11 | 3 | Surfabricaziun 5 | surfabricaziun_5 | 0 |
| 12 | 7 | Fluor | fluor | 1 |
| 13 | 7 | Maisa | maisa | 2 |
| 14 | 3 | Fuldera | fuldera | 3 |
t1(画像テーブル)は次のようになります
+-----+--------+------+----------------------+-----------+----------+
| id | nav_id | rang | name | img_title | img_text |
+-----+--------+------+----------------------+-----------+----------+
| 700 | 11 | 80 | Siedlg_aussen_26.jpg | | |
SQLステートメントから得られる出力は次のとおりです。
+--------+------------+-------------+-----------+----------+--------+---------------+----------+------------------+
| img_id | img_nav_id | img_name | img_title | img_text | nav_id | nav_parent_id | nav_name | nav_directlink |
+--------+------------+-------------+-----------+----------+--------+---------------+----------+------------------+
| 625 | 11 | 07.jpg | 11 | | 11 | 3 | Surfabri | surfabricaziun_5 |
| 744 | 20 | 85.jpg | | | 20 | 7 | Test | test |
今私が欲しい、または必要としているのは、親のナビゲーション名を取得する必要があることです。だから私はnav_parent_namewhere t2.parent_id = t2.id
と呼ばれるもう1つのフィールドが欲しいので、このために私は試しました
SELECT
t1.id img_id, t1.nav_id img_nav_id, t1.name img_name, t1.img_title img_title, t1.img_text img_text,
t2.id nav_id,t2.parent_id nav_parent_id, t2.name nav_name, t2.directlink nav_directlink,
t2.name nav_parent_name
FROM images t1
INNER JOIN navigation t2
INNER JOIN navigation t2
ON t2.parent_id = t2.id AS nav_parent_name
ON t2.id=t1.nav_id
ORDER BY RAND() LIMIT 0,101
これは機能していません。問題: join について何も知りませんが、必要な結果を得ることができるのか、それとも簡単な新しい SQL ステートメントを作成する必要がありますか?
提案やアドバイスを読んでくれたすべての人に、事前に感謝します。