0

プロパティをプルする次のクエリがあります。プロパティには複数のユニットがあります。ただし、少なくとも 1 つのユニットでプロパティを取得する方法がわかりません。ユニットは、同じ「チーム」を持つことでプロパティに接続されます。「チーム」は varchar (例: 「jkdgsl」) です。助言がありますか?

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
4

3 に答える 3

0

内部結合の性質により、すでにそれを行っていると思います(つまり、少なくとも1つのユニットを持つプロパティを選択します)。

于 2012-07-09T19:23:58.297 に答える
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

于 2012-07-09T19:28:52.717 に答える
0

1 つ以上の場合は、 を使用できますCOALESCE

WHERE COALESCE( Properties.id, Properties.title, Properties.team ) IS NOT NULL
于 2012-07-09T19:34:00.177 に答える