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

MySQLは製品ごとに1つの画像を返します

    これは機能しますが、かなり醜いです

    select p.intProductId, p.strProductName, pi.strImageName 
    from tblProducts p
    inner join tblProductImages pi on pi.intProductID = p.intProductId
    inner JOIN (select min(intOrder) minOrder, intProductID
               FROM tblProductImages
               GROUP BY intProductID) s
               on s.intProductID = p.intProductID and s.minOrder = pi.intOrder
    union
    select p.intProductId, p.strProductName, pi.strImageName
    from tblProducts p
    left join tblProductImages pi on pi.intProductID = p.intProductId
    where pi.intProductID is null;
    

    代替:

    select p.intProductId, p.strProductName, pi.strImageName
    from tblProducts p
    left join tblProductImages pi on pi.intProductID = p.intProductId
    where pi.intProductId is null or pi.IntOrder = (select min(intOrder)
                                                    from tblProductImages
                                                    where intProductId = pi.intProductId);
    

    Sqlfiddle



    1. ColumnStoreはページネーションワークロードを支援できますか?

    2. MySQL 5.7は、個別の列に基づいてテーブルのすべての列を返します

    3. MicrosoftPowerBIでのデータの視覚化

    4. phpPgAdminからのPostgressql挿入クエリ構文エラー