2

我有两个表:history_tickets & users

表一:history_ticket

history_id   |  id_klien    | id_staf   | message
  11         |     77       |   NULL    |  text
  12         |    NULL      |    1      |  text
  13         |     77       |   NULL    |  text

表 2:用户

user_id   |  name    | group   
  1       |   john   |  staff  
  77      |   dion   |  member

我想要这样的结果:

history_id   |  message | user_id  |  name   | group
  11         |    text  |   77     |  dion   |  member
  12         |    text  |    1     |  john   |  staf
  13         |    text  |   77     |  dion   |  member
4

2 回答 2

2

您需要JOIN以下表格:

select h.history_id,
  h.message,
  u.user_id,
  u.name,
  u.group
from history_ticket h
left join users u
  on h.id_staf = u.user_id
  or h.id_klien = u.user_id

请参阅带有演示的 SQL Fiddle

于 2013-02-22T15:36:39.600 回答
2
SELECT  a.HISTORY_ID,
        a.MESSAGE,
        COALESCE(a.ID_KLIEN, a.ID_STAF) UserID,
        COALESCE(b.name, c.name) name,
        COALESCE(b.group, c.group) `group`
FROM    history_ticket a
        LEFT JOIN users b
            ON a.id_klien = b.user_ID
        LEFT JOIN users c
            ON a.id_staf = c.user_ID
于 2013-02-22T15:37:03.563 回答