SQLite中2个表的值

时间:2012-12-25 17:33:33

标签: sql sqlite

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

  • 表A包含ID列和TEXT
  • 另一个表格B包含IDTEXTA_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中与TEXT每行中特定B值匹配的行的键。

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

1 | Fruit | 1
2 | Vegetable | 1

因此,在上述结果中,第一列是表ID的{​​{1}},第二列是表A的{​​{1}}和最后一列(第3列) )列是表中的行数 TEXT ,其中列 A 的值为“是”

我能够获得与此类似的值,但总行数为第3列,而不仅仅是“Fresh”行。

我试过了:

B

和此:

FRESH

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

因为我是SQL的新手,所以我坚持这个。那请帮帮忙?我正在使用SQLite3

1 个答案:

答案 0 :(得分: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;