ここにはJOINステートメントのない全ユーザーがいます。LEFT OUTER JOINを使用して、選択カウント(*)の正しい総数を取得するにはどうすればよいですか?
mysql> SELECT COUNT(*) AS total
-> FROM users;
+--------+
| total |
+--------+
| 608000 |
+--------+
1 row in set (0.28 sec)
そしてLEFT OUTER JOIN
ここ
mysql> SELECT COUNT(*) AS total
-> FROM users
-> LEFT OUTER JOIN users_icon
-> ON users.uid = users_icon.iconuid
-> LEFT OUTER JOIN icon_code
-> ON users_icon.icondata = icon_code.iconid;
+--------+
| total |
+--------+
| 608084 |
+--------+
1 row in set (3.78 sec)
と私は別の合計数を持っています。 LEFT OUTER JOIN
の場合、総数はどのようにして608000になりますか?
おそらくテーブルに複数の関連する行があるためですか? – eggyal
これを試してみてください。SELECT COUNT(users.id)AS合計 – Bryan
3つのテーブルの間に1対1の関係がないかぎり、それらをすべて一緒に結合するとさらに多くの行があるとは思わないでしょうか? –