0

申し訳ありませんが、特定のタイトルではありません。

PHPでMySQLを使用しています。

これらは私のテーブルです:

+++++++++++++++++++++++  
|........thread.......|  
+++++++++++++++++++++++  
|.id.|..title..|..ok..|  
+++++++++++++++++++++++  
|.45.|.baslik.|...1...|  
|.53.|.baslik.|...0...|  
|.56.|.baslik.|...1...|  
+++++++++++++++++++++++  

+++++++++++++++++++++++++++++++++  
|............comment............|  
+++++++++++++++++++++++++++++++++  
|.id.|..text..|.ok.|.thread_id..|  
+++++++++++++++++++++++++++++++++  
|.1..|.falan..|.0..|....45......|  
|.3..|.filan..|.1..|....56......|  
+++++++++++++++++++++++++++++++++  

私が必要とするのは、thread.id = comment.thread_idとcomment.ok = 1の等しい行数を提供する「スレッド」テーブルのすべてのチェックされた(ok = 1)行を取得することです。

次のクエリを使用すると、コメントのすべての数がチェックされているかチェックされていないかを取得します。

select thread.*, count( comment.thread_id ) as countComment from `thread` left join `comment` on thread.id=comment.thread_id where thread.ok='1' group by thread.id

取得したい出力は、次のようなものでなければなりません。

++++++++++++++++++++++++++++++++++++  
|.id.|.title..|..ok.|.commentCount.|  
++++++++++++++++++++++++++++++++++++  
|.45.|.baslik.|...1.|......0.......|  
|.56.|.baslik.|...1.|......1.......|  
++++++++++++++++++++++++++++++++++++  

ありがとう、

4

2 に答える 2

1

これを試して:

LEFT JOINコメントON thread.id = comment.thread_id AND comment.ok = '1'

于 2012-07-28T15:52:35.063 に答える
0
select thread.*, sum( comment.ok = 1) as countComment 
from `thread`
left join `comment` on thread.id=comment.thread_id
where thread.ok='1'
group by thread.id

countを条件付きに置き換えますsum

于 2012-07-28T15:51:41.743 に答える