1

我需要从一个表中获取值以及与每个值匹配的行数。更清楚,

  • 表 A 有列IDTEXT
  • 还有另一个表 B,其中包含ID、和TEXTA_IDFRESH

表的一些示例数据A

+---+-------------+
|ID |    TEXT     |
+---+-------------+
| 1 | "Fruit"     |
| 2 | "Vegetable" |
+---+-------------+

还有一些表数据B

+---+----------+----+-------+
|ID |   TEXT   |A_ID| FRESH |
+---+----------+----+-------+
| 1 | "Banana" | 1  |  Yes  |
| 2 | "Carrot" | 2  |  Yes  |
| 3 | "Apple"  | 1  |  No   |
+---+----------+----+-------+

可以看出,A_ID包含表A中一行的键,该键TEXTB.

所以我需要的是,我需要得到这样的数据:

1 | Fruit | 1
2 | Vegetable | 1

所以在上面的结果中,第一列是IDA,第二列是TEXTA,最后(第三)列是 B 中列 FRESH 值为“是”的行数。

我已经能够获得与此类似的值,但总行数作为第三列,而不仅仅是“新”行。

我试过这个:

 SELECT A.ID, A.TEXT, count(B.FRESH) FROM A JOIN B ON A.ID = B.A_ID;

和这个:

SELECT A.ID, A.TEXT, B.FRESH FROM A JOIN B ON A.ID = B.A_ID;

但他们没有得到预期的结果。

由于我是 SQL 的新手,所以我坚持这一点。所以请帮忙?我正在使用 SQLite3

4

1 回答 1

2
SELECT 
    A.ID, 
    A.TEXT, 
    (SELECT COUNT(1) 
             FROM B 
             WHERE B.A_ID=A.ID 
                 AND B.FRESH ='YES') AS FRESH
FROM A;
于 2012-12-25T17:47:06.927 回答