尝试选择但如果失败则留空

时间:2013-07-23 16:04:23

标签: mysql select conditional-statements

我有一个请求,我选择name, id, date, priority等,我也选择了category,因为该类别位于另一个表格中,我将其与JOIN相关联,问题是{{1 }}可以为空,如果它为空则没有category,没有ID表示ID不起作用,并且它不会显示没有类别的票证,因为它不能选择类别名称,有没有办法“尝试”选择类别名称,如果不能,它会将类别名称留空但仍然选择其他项目?

1 个答案:

答案 0 :(得分:0)

使用您提供的数据,左连接将起作用。

使用这两个表:

    |Tickets                      |
    +--+--------+----------+------+
    |ID|Name    |Date      |Cat_id|
    +--+--------+----------+------+
    |1 |Ticket 1|2013-07-13|1     |
    +--+--------+----------+------+
    |2 |Ticket 2|2013-06-13|2     |
    +--+--------+----------+------+
    |3 |Ticket 3|2013-06-25|4     |
    +--+--------+----------+------+

    |Category   |
    +--+--------+
    |ID|Name    |
    +--+--------+
    |1 |sample 1|
    +--+--------+
    |2 |sample 2|
    +--+--------+
    |3 |sample 3|
    +--+--------+

使用此查询可以提供您要查找的内容:

    SELECT t.id, t.name
    ,t.date, c.name FROM `stack overflow`.tickets as t
     Left Join category as c on c.id = t.cat_id

我得到的结果是:

    |ID|Name    |Date      |Name    |
    +--+--------+----------+--------+
    |1 |Ticket 1|2013-07-13|Sample 1|
    +--+--------+----------+--------+
    |2 |Ticket 2|2013-06-13|Sample 2|
    +--+--------+----------+--------+
    |3 |Ticket 3|2013-06-25|NULL    |
    +--+--------+----------+--------+