MYSQL:根据条件从交叉连接中获取某些数据

时间:2015-07-23 14:24:51

标签: mysql

这是我的问题查询:

TextStream.Position = 0

查询有效。问题在于,执行tgs.keyid = t.task_group的WHERE子句的部分过滤掉了这个条件不正确的结果(当然这是正确的)。

如果这个条件不为真,我怎么能修改这个查询并仍然得到tname,在这种情况下获得一个预定义的字符串为tgname?

当这个条件不成立时,为了给出一些额外的信息,t.task_group总是-1。在这种情况下,我想得到一个" N / A"的tgname。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

使用CASE...WHEN...ELSE...END

SELECT DISTINCT 
      t.name AS tname, 
      t.task_group AS tg,
      CASE WHEN tgs.keyid = t.task_group THEN tgs.name ELSE 'something else' END AS tgname
      FROM tasks AS t, task_users AS tu, task_groups AS tgs
      WHERE (tu.worker = 1 AND t.keyid = tu.task);