选择具有特定年份的所有行以及受影响组的所有行

时间:2012-09-05 20:31:45

标签: mysql select

我有一个表,其中每个hundret行具有相同的id(参见下面的缩写示例中的“chart_id”)。

如果我们将具有相同“chart_id”的每一行视为“图表”,如何使用mysql查询选择具有特定年份的每个图表。

例如,如何选择其中包含2009的每个图表(图表2和图表3):

修改的: 如果我寻找2009年,应该选择ID为4,5,6和7,8,9的行。

id   chart_id  time
1    1         2008
2    1         2008
3    1         2008

4    2         2008
5    2         2008
6    2         2009

7    3         2009
8    3         2009
9    3         2009

10   4         2010
11   4         2010
12   4         2010

有什么建议吗?

谢谢:)

3 个答案:

答案 0 :(得分:3)

只需使用DISTINCT

SELECT DISTINCT chart_id
FROM myTable
WHERE time = 2009

或者,您是否想要该图表的所有行SQL Fiddle

SELECT *
FROM myTable t1
WHERE EXISTS(SELECT 1 
             FROM myTable t2 
             WHERE t2.chart_id = t1.chart_id AND t2.time = 2009)

答案 1 :(得分:2)

似乎SELECT DISTINCT chart_id WHERE year ...可行。

答案 2 :(得分:1)

SELECT DISTINCT chart_id FROM table_name WHERE time = 2009