2017-06-10 10 views
0

私は、次のセットアップで親MySQLテーブルを持っている場合: ID |名前|説明親MySQLテーブル親テーブルの子テーブルをイメージのリストとともに持つことができますか?

と私は子テーブルを持っています Parent_ID |タグ

同じparent_IDを持つ複数のタグの行が存在する可能性があります。

どのように配列 として、完全な親表を返すようにSQLクエリを実行するだけでなく、PARENT_IDタグを含めることができ、すなわち:

[ 
    { 
    "id": 1, 
    "name": "name", 
    "description": "description", 
    "tag": [ 
     "tag1", 
     "tag2", 
     "tag3" 
    ] 
    } 
] 

私はどうしたら私は、残りのAPIを作成するためにPHPを使用しています配列とPHPで結合するか、私はこれをMySQLで行います。一致するすべてのタグの配列を親IDで返すことに利点はありますか?または、単にidでタグの2番目の残りの終点を持ち、そのようにタグを取得してUIレイヤーの表示を処理するほうがよいでしょう。どんな考えも役立ちます。

答えて

0

あなたは値のカンマ区切りリストを作成するために、GROUP_CONCAT機能を使用することができます。

SELECT 
    a.`id`, 
    a.`name`, 
    a.`description`, 
    GROUP_CONCAT(b.`Tag`) as `tags` 
FROM `parent` a 
JOIN `child` b 
ON a.`id` = b.`parent_id` 
GROUP BY a.`id`, a.`name`, a.`description`; 
+0

行ってもいいが、私は3分間受け入れることはできません。しかし、私はそれをテストし、私が必要なものです。ありがとう – Zuriel

+0

は、タグに独自の項目として配置する方法があるので、コンマでタグの代わりに配列のタグを使用するので、同じコンセプトの画像を配列や同じものに再利用することができます1つのアイテムにすべて含まれているか、またはその値を解析して、そのコマンドを削除して、それをUIに戻します。 – Zuriel

+0

うれしいことに、あなたのために働いていました。可能であれば受け入れてください。ありがとう! –

関連する問題