2011-09-20 106 views
0

的基礎上最後一排我有以下表結構:MySQL查詢用於獲取

Category 
------------------- 
id 
slug 
values 
category 
sort 


Incidents 
------------------- 
id 
scid 
title 
impact 
date 
servicestatus 
incidentsstatus 
details 
createdon 
editedon 

在事件表中,我們有一個單一類型的多個條目。 scid是表類別(id)中給出的類別ID

我想從事件表中顯示所有具有servicestatus字段值的類別名稱。

Service  Status 
------- ---------- 
Internet  1 
Email  0 
Server1  1 

請檢查並建議我們可以用它做什麼,我想它在category.id和insidents.scid的基本兩表之間的連接,但其顯示重複結果?

謝謝!

+0

檢查這些問題/回答:http://stackoverflow.com/questions/7233757/order-within-group - by –

+0

http://stackoverflow.com/questions/4668902/mysql-group-by-to-display-latest-result –

+0

http://stackoverflow.com/questions/755918/simple-query-to-grab-max -VALUE換每個-ID –

回答

1

使用此查詢:

select cat.value, ins.servicestatus from Incidents ins, category cat where ins.scid = cat.id group by cat.id; 
1

如果我理解正確,列「servicestatus」將包含0或1?要麼?

如果是爲了看是否有任何「開放」的事件,你可以讓你的SQL,因爲這

SELECT 
    c.category, max(i.servicestatus) 
FROM 
    Category as c 
INNER JOIN 
    Incidents as i ON c.id = i.scid 
GROUP BY 
    c.category 

MAX() SQL命令將在每個類別中返回從事件錶行的最高值

\ t

0

如果你想看到從事件表的當前狀態,你應該使用這樣的事情:

select c.Category, i.servicestatus 
from category as c inner join incidents as i on c.id = i.scid 
where i.date = (select max(date) from incidents as i2 where i.scid = c.id)