2012-09-05 51 views
0

我有兩個表設置。一個用於學生信息,一個用於學生/班級上市。我使用MSSQL 2008 R2的sqlsrv插件編寫了PHP代碼。如何將多個查詢組合到一個數組中?

Student ID 
Class Code 

Student ID 
First Name 
Last Name 

我需要從班級中選擇所有學生,但按姓氏排序。

SELECT student_id FROM table1 WHERE class_code LIKE '402843' 
$students = SELECT last_name, first_name FROM table2 WHERE student_id LIKE 'all results of first query' 

現在我可以選擇所有的學生並顯示所有的信息;但是,我無法按姓氏排序。我相信這是可能的,但看到第一個查詢將返回一個數組,我需要第二個查詢返回一個數組。

任何幫助將不勝感激。

回答

1

使用子查詢IN

SELECT last_name, first_name FROM table2 WHERE student_id IN (SELECT student_id FROM table1 WHERE class_code='402843') ORDER BY last_name ASC 
+0

這就像一個魅力。非常感謝...'in'對我來說是新的,感謝您的幫助!希望我能給你一千個讚揚。 – Fleppar

+0

是否有一個JOIN不起作用的原因? – FilmJ

+0

不,但它更復雜,我不喜歡加入,儘可能簡化,我會給他+1 :) –

3

看看加入在SQL做這一切在你的查詢,而不是在PHP ...

使用你的例子和代碼的目的,命名錶如下

ClassCodeTable 
    Student ID 
    Class Code 

StudentInfoTable 
    Student ID 
    First Name 
    Last Name 

然後將查詢看起來像

SELECT SI.last_name, SI.first_name FROM StudentInfoTable SI JOIN ClassCodeTable CC on CC.student_id=SI.student_id WHERE CC.class_code LIKE '402843' ORDER BY SI.last_name ASC 
相關問題