sql >> Databáze >  >> RDS >> Mysql

podmíněné spojení mysql závisí na sloupci

nelze podmíněně vytvářet spojení napříč tabulkami. Nejlepší způsob, jak to udělat, je použít LEFT JOIN a použijte CASE ve vašem SELECT prohlášení. Musíte zadat běžné sloupce, které chcete zobrazit,

SELECT *,
        (CASE notification_base.type
            WHEN 'photo'
            THEN photo.columnName1
            ELSE post.ColumnName1
        END) as ColumnName1,
        (CASE notification_base.type
            WHEN 'photo'
            THEN photo.columnName2
            ELSE post.ColumnName2
        END) as ColumnName2
FROM notification_action
    INNER JOIN notification_base
        ON notification_action.not_base_id = notification_base.id
    INNER JOIN notification_sub
        ON notification_action.not_base_id = notification_sub.not_base_id
    INNER JOIN photo
        ON photo.id = notification_base.object_id
    INNER JOIN post
        ON post.id = notification_base.object_id
WHERE notification_sub.user_id = 3
    AND notification_sub.lastShowDate < notification_action.creationDate;



  1. Použití podmínky if ve vložení SQL Server

  2. Co je rychlejší, SELECT DISTINCT nebo GROUP BY v MySQL?

  3. existuje funkce PRODUCT, jako je funkce SUM v Oracle SQL?

  4. Povolení virtualizace v BIOSu v notebooku nebo stolním počítači pro Virtualbox VM