来自多个具有关系的表的2个日期之间的MySQL查询

时间:2019-02-13 15:15:43

标签: mysql vb.net

查询时遇到麻烦。

我有一个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

link for datagrid sample

错误

link to query error

1 个答案:

答案 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