2010-10-25 45 views
1

我已經加入了類似功能將條目數據庫條目數......這裏的DB的結構:檢索像SQL

**Users** 
user_id 
user_name 
etc. 

**Entries** 
entry_id 
entry_content 
etc. 

**Likes** 
user_id 
entry_id 

(這是比這更復雜一點,有組/類別,但應該解釋一下罰款......)這裏的SQL查詢我與此刻的工作:

SELECT 
entries.*, 
DATE_FORMAT(entry_date, "%M %D, %Y") as entry_date, 
groups.group_short_name, 
users.user_name, users.user_id, 
FROM entries 
INNER JOIN groups ON groups.group_id = entries.group_id 
INNER JOIN users ON users.user_id = entries.user_id 
ORDER BY entry_date DESC 

我想也檢索每個條目喜歡這個查詢,想知道如果有可能的。我一直想:

COUNT(DISTINCT likes.like_id) as likes 

LEFT JOIN likes ON likes.entry_id = entries.entry_id 

但我不認爲這是正確的附近的任何地方。我離開嗎?這可能嗎?希望這一切都有道理。

感謝您的幫助提前。

回答

1

給你的表的別名,一個..

FROM entries e 

然後添加一列查詢:

select e.*, (select count(*) from Likes where entry_id = e.entry_id) as entry_likes 
+0

非常酷。沒有意識到它可能如此簡單。謝謝! – 2010-10-25 20:34:17

+0

哎呀打得太快了......只是想知道,爲什麼我需要給我的表別名?每次寫入'條目'而不是'e'是否很糟糕?我只做了幾次... – 2010-10-25 20:34:47

+0

@Ian我總是這樣做,原因有很多。它使寫作查詢變得更容易,在創建自我連接和子查詢時更加明確和準確,而且我沒有找到一個不好的理由。 :) – Fosco 2010-10-25 22:33:12

0

地址:

GROUP BY entries.entry_id 

看看是否能工程。