2013-02-22 76 views
2

我有兩個表:history_tickets &用戶MySQL查詢兩個外鍵一個主鍵

TABEL 1:history_ticket

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

TABEL 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 

回答

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 
+1

謝謝我的朋友! – Hafiz 2013-02-22 15:49:03

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 with Demo