2014-02-10 95 views
0

下令我有兩個表,一個投訴,另一個用於分配技術人員MySQL的連接查詢的幫助:加入降序排列

表1不同右錶行的兩個表: - complaints

------------------------------------------ 
| id | complaint  | charges | status | 
------------------------------------------ 
| 1 | gas kit broken | 250  | 2  | 
| 2 | water leakage | 100  | 2  | 
| 3 | too much smoke | 150  | 2  | 
------------------------------------------ 

現在,1個抱怨很多技術人員可以得到又一個,直到投訴解決,使分配1

表2: - assign

------------------------------------------------ 
| id | complaint_id | technician | assign_date | 
------------------------------------------------ 
| 1 | 1   | 24   | 1391904000 | 
| 2 | 1   | 55   | 1391598500 |* 
| 3 | 2   | 20   | 1391600000 | 
| 4 | 2   | 31   | 1391676500 | 
| 5 | 2   | 25   | 1391665000 |* 
| 6 | 3   | 26   | 1391682000 | 
| 7 | 3   | 28   | 1391800000 |* 
------------------------------------------------ 

我想是加入抱怨的所有行與狀態= 1到指定其中complaints .ID = assign .complaint_id的最後一排。

我已經與星(*)標記他們,所以輸出shud是

----------------------------------------------------------------------------------------- 
| id | complaint  | charges | status | id | complaint_id | technician | assign_date | 
----------------------------------------------------------------------------------------- 
| 1 | gas kit broken | 250  | 2  | 2 | 1   | 55   | 1391598500 | 
| 2 | water leakage | 100  | 2  | 5 | 2   | 25   | 1391665000 | 
| 3 | too much smoke | 150  | 2  | 7 | 3   | 28   | 1391800000 | 
----------------------------------------------------------------------------------------- 

我的工作平臺有: - PHP和MySQL

回答

1
select a.*, b.* 
from complaint as a left join 
    (select c.* 
    from assign as c 
    where c.id in (
     select max(d.id) as max_id 
     from assign as d 
     group by complaint_id)) as b 
     on a.id = b.complaint_id 
+0

它的工作謝謝:) –

+0

對,我對不起,我只是新來的,這就是爲什麼我不知道如何按照你的方式來設計我的答案。也許你可以教我?謝謝! – marce