sql >> データベース >  >> RDS >> Mysql

json_encodeへの複数のMySQLテーブル

    さて、私はあなたの解決策を書きました。アイテムと一緒に注文することを前提としているため、注文が含まれていることを確認する必要があります。また、発行元がどのように保存されているかもわからなかったので、それを別のテーブルに分けました(これにより、発行元だけでアイテムを取得できるようになります)。これは4つの結合になります。また、別の注意点として、内部結合も行うように更新しました。このようにして、ゲームが割り当てられていないコンソールで空の結果が得られることはありません。これらが必要な場合は、結合を変更するだけで、それらの結果も得られます。これが役立つかどうか教えてください

    //get all of the information
    $query = '
        SELECT c.consoleId,c.consoleName,m.modelId,m.modelName,g.gameId,g.gameName,p.publisherId,p.publisherName
        FROM `consoleconsole` c
            INNER JOIN `consolemodel` m ON c.consoleId=m.consoleId
            INNER JOIN `consolegame` g ON m.modelId=g.modelId
            INNER JOIN `consolepublisher` p ON g.publisherId = p.publisherId
        ORDER BY c.consoleName, m.modelName, g.gameName
    ';
    
    //get the results
    $result = mysql_query($query);
    
    //setup array to hold information
    $consoles = array();
    
    //setup holders for the different types so that we can filter out the data
    $consoleId = 0;
    $modelId = 0;
    
    //setup to hold our current index
    $consoleIndex = -1;
    $modelIndex = -1;
    
    //go through the rows
    while($row = mysql_fetch_assoc($result)){
        if($consoleId != $row['consoleId']){
            $consoleIndex++;
            $modelIndex = -1;
            $consoleId = $row['consoleId'];
    
            //add the console
            $consoles[$consoleIndex]['console'] = $row['consoleName'];
    
            //setup the information array
            $consoles[$consoleIndex]['information'] = array();
        }
    
        if($modelId != $row['modelId']){
            $modelIndex++;
            $modelId = $row['modelId'];
    
            //add the model to the console
            $consoles[$consoleIndex]['information'][$modelIndex]['model'] = $row['modelName'];
    
            //setup the title array
            $consoles[$consoleIndex]['information'][$modelIndex]['title'] = array();
        }
    
        //add the game to the current console and model
        $consoles[$consoleIndex]['information'][$modelIndex]['title'][] = array(
            'game'      => $row['gameName'],
            'publisher' => $row['publisherName']
        );
    }
    
    echo json_encode($consoles);
    


    1. SQLPLUSを使用してコマンドラインでPL/SQLスクリプトに引数を渡すにはどうすればよいですか?

    2. NTILE()がSQLServerでどのように機能するか

    3. json列キーがnullであるレコードを取得します

    4. XMLフィードからMySQLのレコードを更新する最良の方法