查询时遇到麻烦。
我有一个gridview,可以根据他们的部分统计所有患有特殊疾病的学生。我想要的是在两个日期之间进行过滤,因为我有多个表。
Dim query As String
query = "SELECT count(student_id) as i from students, patient, ailment
WHERE students.sid=patient.student_id AND
patient.ailment_id=ailment.ailment_id and section WHERE
patient.date_created BETWEEN @d1 AND @d2"
Dim data_table As New DataTable
sql_command = New MySqlCommand(query, myconnection.open())
sql_command.Parameters.Add("@d1", MySqlDbType.DateTime).Value =
dateStart.Value
sql_command.Parameters.Add("@d2", MySqlDbType.DateTime).Value =
dateEnd.Value
Dim adapter As New MySqlDataAdapter(sql_command)
adapter.Fill(data_table)
DataGridView1.DataSource = data_table
myconnection.close()
Datagrid
错误
答案 0 :(得分:2)
您似乎遇到了一些问题
首先,您有两次
SELECT count(student_id) as i
from students, patient, ailment
WHERE students.sid=patient.student_id
AND patient.ailment_id=ailment.ailment_id
AND patient.date_created BETWEEN @d1 AND @d2
second您还有一个{。{1}}不清楚。.(检查您的实际情况并最终更新代码)
无论如何,您应该使用清晰的显式JOIN sintax,而不是基于where的OLD和不清楚的隐式版本
and section