私はこのクエリを書いて、ユーザー数+各ユーザーが作成した可能性の数+変換されたすべての可能性を取得します。私は1に私のクエリを組み合わせることができます。しかしイムが0の行を取得することを、this answer explained meとして非相関サブクエリでそれをやろうとしていますなぜ私のクエリはエラーを表示しませんが、ゼロ行も返しますか?
SELECT u.*, p.allPotentials, pc.cPotentials
FROM os_user u
JOIN (SELECT FID_author, count(*) allPotentials FROM os_potential) p
ON p.FID_author = u.ID
JOIN (SELECT converted, FID_author, count(*) cPotentials FROM os_potential) pc
ON p.FID_author = u.ID AND pc.converted = 1
:これは、それがどのように見えるかです。
私のテーブルには、次のようになります。
ユーザー:
+----+------+-------+
| ID | Name | Email |
+----+------+-------+
ポテンシャル:
+----+------+-------+------------+-----------+
| ID | Name | Email | FID_author | converted |
+----+------+-------+------------+-----------+
FID_authorが外部キー、ユーザーIDです。
私のクエリは0行を返しており、エラーは表示されません。私は間違って何をしていますか?
EDIT
これまでのところ、私のクエリ:
SELECT u.*, p.allPotentials, pc.cPotentials
FROM os_user u
LEFT JOIN (SELECT FID_author, count(*) allPotentials
FROM os_potential GROUP BY FID_author) p
ON p.FID_author = u.ID
LEFT JOIN (SELECT converted, FID_author, count(*) cPotentials
FROM os_potential GROUP BY FID_author) pc
ON p.FID_author = u.ID
AND pc.converted = 1
GROUP BY u.ID
私が期待されるほとんどとして結果を取得していますが、問題がcPotentials
がfalseのすべての行、1が含まれている、です。多くの場合、1つしかありません。どこに問題がありますか?
行方不明のグループに参加。 – jarlh
速いコメントをいただきありがとうございます。私は各サブクエリの最後に 'GROUP BY FID_author'を追加しましたが、まだ0行を返します。 – ksno