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

未定義の値を保持するSQLSelectステートメントの動的列

    あなたはとても近いです。キー/値テーブルitempropertiesに参加する必要があります 取得する必要のある個別のキー(プロパティ)ごとに1回。重要なのは、LEFT JOINを使用する必要があるということです。 。プレーンインナーJOIN 結合基準が満たされていない場合、出力行を抑制します。

    これを試してください。

    SELECT i.ID as ItemID, i.Name as ItemName, 
           p1.Value AS Color, p2.Value AS Speed, p3.Value AS Price
      FROM items as i
      LEFT JOIN itemproperties AS p1 ON (i.ID=p1.ItemID) AND (p1.Name = 'Color')
      LEFT JOIN itemproperties AS p2 ON (i.ID=p2.ItemID) AND (p2.Name = 'Speed')
      LEFT JOIN itemproperties AS p3 ON (i.ID=p3.ItemID) AND (p3.Name = 'Price')
    

    Nameを選択する式 値(z.B. p3.Name = 'Price'ONに移動します WHEREではなく句 条項。



    1. OracleでSQLアクティビティを監視するにはどうすればよいですか?

    2. mysqlで次の自動インクリメントIDを取得する方法

    3. 避けるべき5つのデータベース設計の間違い

    4. PDOStatement ::nextRowSet()は、WindowsのMySQL5.6.16で壊れています