2011-09-25 47 views
1

使用PHP,我试图用来自MySQL数据库中两个不同表的数据填充HTML列表。每个表的结构如下:从多个MySQL表中加入结果并使用PHP输出

Table: "students" 
+------------+------------+-----------+---------------+-------+ 
| student_id | first_name | last_name | city   | state | 
+------------+------------+-----------+---------------+-------+ 
| 1   | Tobias  | Funke  | Newport Beach | CA | 
+------------+------------+-----------+---------------+-------+ 
| 2   | Bob  | Loblaw | Laguna Beach | CA | 
+------------+------------+-----------+---------------+-------+ 
| 3   | Ann  | Veal  | Bland   | CA | 
+------------+------------+-----------+---------------+-------+ 


Table: "students_current" 
+------------+------------+---------------+ 
| student_id | school_id | current_class | 
+------------+------------+---------------+ 
| 1   | umass  | Sr   | 
+------------+------------+---------------+ 
| 2   | ucla  | Jr   | 
+------------+------------+---------------+ 
| 3   | ucla  | Fr   | 
+------------+------------+---------------+ 

我想只有用符合特定school_id的记录来填充列表。

例如,如果我想要的清单只包含学生的school_id是“加州大学洛杉矶分校”,所产生的HTML将如下所示:

<li> 
    <span class="first_name">Bob</span> 
    <span class="last_name">Loblaw</span> 
    <span class="city">Laguna Beach</span> 
    <span class="state">CA</span> 
    <span class="current_class">Jr</span> 
</li> 

<li> 
    <span class="first_name">Ann</span> 
    <span class="last_name">Veal</span> 
    <span class="city">Bland</span> 
    <span class="state">CA</span> 
    <span class="current_class">Fr</span> 
</li> 

每个<li>项目将被从绑定到特定student_id值数据库。如何编写将从数据库选择/加入适当记录的PHP?

+1

+1对于包括鲍勃的Loblaw在SO质疑例如数据 –

回答

1

使用LEFT JOIN

SELECT * 
FROM `students` s 
    LEFT JOIN `students_current` sc ON s.`student_id` = sc.`student_id` 
WHERE `school_id` = 'ucla' 
+0

啊,我是很陌生的不同类型的连接以及何时使用它们。我一直在尝试使用INNER JOIN,甚至没有正确地构建它。 –

相关问题