我有一个表,其中每个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
有什么建议吗?
谢谢:)
答案 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