1
私のmysqlデータベースには、2つのテーブルprojectとsub_projectがあります。 サブプロジェクトにはidと頭字語が含まれています。サブプロジェクトには、それが属するメインプロジェクトを示すproject_idがあります。データベースには、次のようになります。selectのカラム名をsubselectに置き換える
mysql> SELECT id, acronym FROM project;
+----+---------+
| id | acronym |
+----+---------+
| 14 | P1 |
| 15 | P2 |
| 16 | P3 |
+----+---------+
3 rows in set (0.00 sec)
mysql> SELECT id, project_id FROM subproject;
+----+------------+
| id | project_id |
+----+------------+
| 1 | 14 |
| 2 | 14 |
+----+------------+
2 rows in set (0.00 sec)
私はそうのように、サブプロジェクトの数とともに、各プロジェクトのidと頭字語を表示するクエリを作りたい:
SELECT id, acronym, COUNT(select * FROM sub_project WHERE project_id=id) AS 'sub_proj_count'
FROM project;
+----+---------+----------------+
| id | acronym | sub_proj_count |
+----+---------+----------------+
| 14 | P1 | 2 |
| 15 | P2 | 0 |
| 16 | P3 | 0 |
+----+---------+----------------+
しかし、これは構文的に間違っている。これはどのように定式化されるべきですか?
あなたが参加し、遅いサブクエリを避けることができません。しかし、あなたの結果は正しい、そうですか? – Drew
問題はそれが遅いということではなく、それは私に構文エラーを与え、うまくいかないということです。私。 select文からの出力は、私が得たいものではなく、達成したいものです。私はそれがゆっくりであっても、主に述べたように動作させる修正に満足しています。 – NiklasR
カウントとグループで参加する – Drew