2016-09-29 7 views
0

私の問題

を1つの結果だけを引っ張って、JOIN ... NAV & subnavLEFTは、私は2つのテーブルを結合してい

つだけ結果がsubnavから表示されます。

あなたはここに私の問題を見ることができます。http://aquiestoy.mx/demo/tempone/indexnew.php (トップグレーアコーディオンメニュー)

をMY CODE

SELECT nav.name AS name, 
nav.href, 
nav.nav_id, 
subnav.name AS subname, 
subnav.nav_id AS parent 

FROM nav LEFT OUTER JOIN subnav 
ON nav.nav_id = subnav.nav_id 

GROUP BY nav.name 
ORDER BY nav.position, subnav.position 

MY TABLES

Table Name "NAV" 
+-------------+-------------+---------+----------+-----------+ 
| nav_id  | name  | href | position | client_id | 
+-------------+-------------+---------+----------+-----------+ 
| 10   | Home  | home | 11  | 56  | 
| 11   | Products | about | 11  | 56  | 
| 12   | Promotions | about | 11  | 56  | 
| 13   | two   | about | 11  | 56  | 
+-------------+-------------+---------+----------+-----------+ 

Table Name SUBNAV 
+-------------+--------+---------+----------+--------+-----------+ 
| subnav_id | name | href | position | nav_id | client_id | 
+-------------+-------------+---------+----------+---+-----------+ 
| 1   |  | page | 1  | 11  | 56  | 
| 2   | Page1 | page | 2  | 11  | 56  | 
| 3   | Page2 | page | 3  | 11  | 56  | 
| 4   | Page3 | page | 4  | 11  | 56  | 
+-------------+--------+---------+----------+--------+-----------+ 

あなたはそれが

を引いて見ることができるように
+0

そう私はそのセクションを追加するのを忘れたこと固定SUBNAVテーブル –

+0

に存在nav_idされなければならない - しかしテーブルにはNAV_IDがあります –

+0

メニューHTMLに関連するPHPコードの一部を含めることができます。 – segFault

答えて

1

GROUP BY nav.nameはliですここでは犯人を殺しなさい。そのフィールドのすべての結果をグループ化しているので、同じメインナビゲーション名を持つすべての子/サブナビゲーションアイテムは、その行の最後のレコードのデータと1つの結果にマージされます。

可能であれば、別のフィールドでグループ化するか、グループ化しないでください。

これで、すべてのサブナビゲーション項目を持つように、新しいデータ構造を処理するナビゲーションレンダリングループを書き直す必要があります。


もう1つのオプションは、サブナビゲーション項目ごとにサブクエリにクエリを分割することです。

何かのように:

SELECT 
    nav.name, 
    nav.href, 
    nav.nav_id 
FROM nav 
ORDER BY nav.position 

そしてそれからの各結果とを介してループを実行し

SELECT 
    subnav.name, 
    subnav.nav_id AS parent 
FROM subnav 
WHERE subnav.nav_id = 11 // Or the current parent nav_id 
ORDER BY subnav.position 
+0

ちょっとセバスチャンフォースバーグ私のプロフィールにアクセスし、私の最新の質問に私を助けてください。 –

+0

私はGROUP BYを削除すると2つのメインNAVの行を表示します... 1 –

関連する問題