1

我有一个表,其中每百行具有相同的 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

有什么建议么?

谢谢 :)

4

3 回答 3

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)
于 2012-09-05T20:35:24.477 回答
2

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

于 2012-09-05T20:33:53.100 回答
1
SELECT DISTINCT chart_id FROM table_name WHERE time = 2009
于 2012-09-05T20:35:15.223 回答