2014-02-20 3 views
2

Я хочу получить данные из базы данных mysql (используя запрос соединения) в форме C# windows, но он дает мне данные повторно 100 раз. Это мой код. пожалуйста помоги.mysql join query возвращает данные повторно

private void button2_Click(object sender, EventArgs e) 
     { 
      if (comboBox1.SelectedIndex < 0 || comboBox2.SelectedIndex < 0) 
      { 
       MessageBox.Show("Please select the Class and group"); 
      } 
      else 
      { 
       table = dbOperation.select("student.admission_no, student.studid, student.name from student inner join " + 
              "studentinclass on studentinclass.studentid = student.studid inner join " + 
              "class on studentinclass.classid = " + comboBox1.SelectedValue + " inner join " + 
              "`group` on studentinclass.groupid = " + comboBox2.SelectedValue + " inner join " + 
              "section on studentinclass.sid = " + comboBox3.SelectedValue); 
       listView1.Items.Clear(); 

       foreach (DataRow row in table.Rows) 
       { 
        listView1.Items.Add(row[0].ToString()); 
        listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[1].ToString()); 
        listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[2].ToString()); 
        listView1.Items[listView1.Items.Count - 1].SubItems.Add("P"); 
       } 
      } 
     } 

это выход

enter image description here

+1

И что на выходе вы ждете? BTW, добавив «DISTINCT» после ключевого слова Select, поможет вам устранить все повторяющиеся строки. – Neels

+0

Какой тип 'dbOperation'? –

+0

это объект класса, в котором подключен файл данных. – Loyal

ответ

0

ли студент ID первичный ключ в обоих таблицах?

+0

Идентификатор студента однозначно идентифицирует каждую запись в обеих таблицах? – suryakrish

0

Вы будете нуждаться в подзапрос для сравнения

Полный оператор выбора хочет быть

"student.admission_no, student.studid, student.name from student " + 
"where student.studid in (select studentinclass.studentid from studentinclass " + 
"inner join class on studentinclass.classid = " + comboBox1.SelectedValue + " " + 
"inner join `group` on studentinclass.groupid = " + comboBox2.SelectedValue + " " + 
"inner join section on studentinclass.sid = " + comboBox3.SelectedValue +")"