フードとタグの 2 つのテーブルがあります。food の各行には、対応するタグがあります。これらのタグを使用して各行を出力したい、つまり:
テーブル フード:
ID | 名前
1 | パン
2 | 肉
テーブルタグ:
リファレンス ID | 鬼ごっこ
1 | ベーカリー
1 | 小麦
2 | 牛
望ましい出力は次のとおりです。
{"results": [{"id":"1","name":"bread","tags":["bakery","wheat"]},
{"id":"2","名前":"肉","タグ":["牛"]}] }
これまでのところ、私はこれを持っています:
$db = getConnection();
$stmt = $db->query($sql);//get every column from every food
$food = $stmt->fetchAll(PDO::FETCH_OBJ);
$tagsSql="select id_reference,tag FROM tags T,food F WHERE F.id=T.food_id_reference";
$stmt = $db->query($tagsSql);
$tags=$stmt->fetchAll(PDO::FETCH_OBJ);
echo '{"results":' . json_encode($food) . '}';
私はすべての食べ物とこれまでのタグを循環させて一致するペアを見つけることを考えていましたが、私にはかなり重いようです (何千行もある可能性があるという事実を考えると)。何か提案はありますか?