选择数据集的所有表行,其中课程等于2个特定值
本文关键字:2个 数据集 选择 | 更新日期: 2023-09-27 18:18:55
我有一个数据库,其中有一个名为MainData
的表。数据格式如下:
ID Lesson Time Score
1 C 165 4
1 E 190 3
1 H 195 3
1 I 200 4
2 A 100 2
2 B 150 5
2 D 210 2
2 E 110 4
3 D 130 5
3 E 190 5
3 H 210 4
3 I 160 4
3 J 110 4
4 E 120 3
4 H 150 4
4 J 170 4
我想写一个命令。让我用一个例子来解释
的例子:
如果Lesson
等于E
和I
(在本例中ID 3
具有此条件),则该命令返回该特定ID的所有行。在这个数据集中,不止一个ID可以有这个条件。我需要的是返回这些特定id的所有行
谢谢你的帮助。
我已经尝试过的事情……
private void btn_recom_Click(object sender, EventArgs e)
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
private void GetRows()
{
// Get the DataTable of a DataSet.
DataTable table = dsDataSet.Tables["MainData"];
DataRow[] rows = table.Select();
// Print the value one column of each DataRow.
}
}
下面的SQL可以完成这项工作,尽管它有点低效:
SELECT * FROM MainData WHERE ID IN
(SELECT T1.ID
FROM MainData AS T1 INNER JOIN MainData AS T2 ON T1.ID = T2.ID
WHERE T1.Lesson="E" AND T2.Lesson="I"
GROUP BY T1.ID);