2012-07-09 103 views
0

我有以下查詢來拉動屬性。屬性有多個單位。我不知道如何使用至少1個單位的屬性。單位通過擁有相同的「團隊」連接到屬性。 「團隊」是一個varchar(例如「jkdgsl」)。有什麼建議麼?mysql內部連接計數查詢

SELECT DISTINCT Properties.id, Properties.title, Properties.team 
FROM Properties 
INNER JOIN Units ON Units.team = Properties.team 
AND Units.rates != '0' 
AND Properties.deleted = '0000-00-00 00:00:00' 
AND Properties.zip_code 
IN (
'77808', '77845' 
) 
AND Properties.public = '1' 
ORDER BY FIELD(Properties.zip_code, '77808', '77845') 
LIMIT 0 , 30 
+1

在我看來,你的查詢已經工作,並拉你需要的屬性,因爲properties'和'units'基本上將排除所有屬性之間的''INNER JOIN'不具有在'對應的行單位「,從而拉動至少1個單位的屬性。但是,如果你只想拉動2個或更多單位的屬性,那麼這是一個不同的故事,你可能需要在GROUP BY和HAVING中進行選擇。 – 2012-07-09 19:30:59

回答

0

我認爲你已經在做這個(即選擇至少具有一個單元的屬性)。

+0

這是一個答案或評論? – 2012-07-09 19:25:15

+0

@FranciscoSpaeth:男人,你對這個觀察都很瘋狂。這顯然是答案,因爲它出現在答案部分。如果你問我是否應該是評論或答案,我的邏輯告訴我應該是一個答案,因爲它回答了他的問題 – Razvan 2012-07-09 19:27:14

0

我@Razvan 同意如果你也想爲單位計數,使用:

SELECT DISTINCT Properties.id, Properties.title, Properties.team, COUNT(Units.<em>someOTHERcolumn</em>) 
FROM Properties 
INNER JOIN Units ON Units.team = Properties.team 
AND Units.rates != '0' 
AND Properties.deleted = '0000-00-00 00:00:00' 
AND Properties.zip_code 
IN (
'77808', '77845' 
) 
AND Properties.public = '1' 
GROUP BY Properties.id ORDER BY FIELD(Properties.zip_code, '77808', '77845') 
LIMIT 0 , 30 

0

如果它只是一個或多個,你可以使用COALESCE

WHERE COALESCE(Properties.id, Properties.title, Properties.team) IS NOT NULL