2011-12-06 7 views
0

で行を返さない含めます9が表示されます(e_idの数の1つがゼロであるため)。MySQLはカウントが、私は次のMySQLのコードを持って、カウントがゼロ

私はLEFT JOINRIGHT JOINの両方を試してみました。誰にも他の提案はありますか?

+0

あなたがCとEの両方のためにあなたのデータを囲むことはできますか?テーブルの1つに10行がない可能性があります – ajreal

+0

実際には0ではなく省略されているe.eidのnull値です。同じc_idに対してeレコードとcレコードの両方が存在するか、あるレコードがあるテーブルに存在する可能性はありますか? –

+0

@ajreal心配しないで、私はそれを修正することができたと思う! – TronCraze

答えて

2

私は何が必要なの、これがあると思われる:

SELECT COUNT(*) AS cnt, c.c_id, c.cdesc 
FROM c 
LEFT JOIN e on c.c_id = e.c_id 
GROUP by c.c_id 
0

用途:

SELECT COUNT(*) AS cnt, e.c_id, c.cdesc 
FROM e 
JOIN c on c.c_id = e.c_id 
GROUP by c.c_id 
1
SELECT COUNT(e.eid) AS cnt, e.c_id, c.cdesc 
FROM c 
left JOIN e on c.c_id = e.c_id 
GROUP by c.c_id 
+0

eレコードが存在しない場合、e.cidはnullになり(e.eidと同様)、メイン・セレクトのcount(*)とc.c_idは(おそらく)良くなります。 –