2012-05-09 59 views
0

我有2個表我想以奇怪/危險/非動態的方式連接。我無法控制這些表格。我試圖從包含事件ID沒有類別ID一個表拉總結,但我需要引用另一個表,以確保該事件是在上述類別。該表包含事件編號編號。我試圖加入他們,但我一直沒有得到任何回報。MYSQL加入 - 哪裏唯一的ID在1表

我知道這是危險的,但我也有過類的控制,所以我知道我的類ID的不會改變,除非我指定。由於它自動遞增 - 我的類別將是1,2,3

我的表

*events_vevent* 

- ev_id 
- catid 

--- 

*events_vevdetail* 

- evdet_id 
- summary 

我的代碼的要點

$data = array(); 
for($i = 0; $i < 3; $i++){ 
    $summary = array(); 
    $query_summary = mysql_query("SELECT events_vevdetail.summary FROM 
        events_vevdetail, events_vevent 
        WHERE 'events_vevent.evdet_id = $i' LIMIT 5") 
    or die(mysql_error()); 

    while(($row = mysql_fetch_array($query_summary))) 
     $summary[] = $row[0]; 

    switch($i){ 
     case 0: 
      $data['cat1'] = $summary; 
      break; 
     case 1: 
      $data['cat2'] = $summary; 
      break; 
     case 2: 
      $data['cat3'] = $summary; 
      break; 
    } 
} 

echo json_encode($data); 

說明

所以我想要做的是:因爲我知道類別ry 1將始終有一個ID爲0,我想拉最近的5個帖子,但只有類別ID爲0的帖子。對cateogry2和3也是如此。現在我得到空數組。我覺得我需要2個MySQL查詢(每個表有一個),然後進行比較,但我不是100%肯定的,寧願這樣做比正確的方式。

TL;博士是我的MYSQL嗎?

+0

你有'JOIN'試過嗎? – diEcho

+0

這不是這是什麼? http://www.tizag.com/mysqlTutorial/mysqljoins.php –

+0

什麼是與events_vevdetail相關的events_vevent的外鍵? –

回答

3

該查詢將返回每個類別的最多5條記錄。

SELECT e1 . * 
FROM events_vevent e1 
LEFT OUTER JOIN events_vevent e2 ON 
(e1.catid = e2.catid AND e1.ev_id < e2.ev_id) 
GROUP BY e1.ev_id 
HAVING COUNT(*) < 5 
ORDER BY catid, ev_id DESC 
+0

不是那個人,但你能解釋一下怎麼回事? :S –