2009-10-26 28 views
0

我正在開發一個應用程序,用戶可以在多個表中進行搜索,現在我不確定是否以正確的方式進行搜索。使用mySql與PHP一起搜索

我的示例代碼如下

 SELECT 
      s.name, 
      s.surname, 
      s.id_nr, 
      s.student_nr, 
      s.createdate, 
      s.enddate 
     FROM 
      Student AS s, 
      Student_Results AS sr 
     WHERE 
      sr.innovation = "A" 
     AND 
      s.name = "Test" 

它是正確的做法,因爲我做以上或者我應該還是用左聯接等?

回答

3

至少,你需要將兩張桌子連在一起的東西 - 現在你基本上會爲每個'A'等級的每個學生取分,因爲你的WHERE條款中沒有任何地方指出分數和學生有相互匹配。

相反,你需要像這樣(不知道你的相關ID字段會是什麼,但你的想法...):

SELECT 
    s.name, 
    s.surname, 
    s.id_nr, 
    s.student_nr, 
    s.createdate, 
    s.enddate 
FROM 
    Student AS s, 
    Student_Results AS sr 
WHERE 
    sr.innovation = "A" 
AND 
    s.name = "Test" 
AND 
    s.id_nr = sr.student_nr 
+0

要麼添加'AND s.name = SR。名稱「(如果該列在另一個表中也被命名爲'name')或使用'JOIN'語句。 – Etan 2009-10-26 11:37:37