代码之家  ›  专栏  ›  技术社区  ›  tombazza

MySQL:在可能为空的字段上加入表

  •  0
  • tombazza  · 技术社区  · 16 年前

    bar_code . 我遇到的问题是select语句:

    SELECT
        Release.name,
        Release.default_upc,
        Artist.name,
        Artist.url_name,
        Format.*
    FROM
        releases AS Release,
        artists AS Artist,
        formats AS Format
    WHERE
        Release.id IN(20015, 2414) AND
        Artist.id = Release.artist_id AND
        Format.bar_code = Release.default_upc
    

    Release.default_upc = null ,则不会返回任何记录。然而,这是一种有效的行为 default_upc Format.bar_code = null -而只是返回其他选定的数据。

    实际上并不确定这在MySQL中是100%可能的,但可以接受任何建议。

    2 回复  |  直到 16 年前
        1
  •  3
  •   Dani    16 年前
        2
  •  1
  •   Justin Niessner    16 年前

    使用外部连接…这里有一个快速镜头。查看其他链接以获取解释。

    select Release.name,
           Release.default_upc,
           Artist.name,
           Artist.url_name,
           Format.*
    from releases as Release
    inner join artists as Artist
        on Artist.id = Release.artist_id
    outer join formats as Format
        on Format.bar_code = Release.default_upc
    where
        Release.id in (20015, 2414)