【问题标题】:Join results from multiple MySQL tables and output with PHP连接来自多个 MySQL 表的结果并使用 PHP 输出
【发布时间】:2011-11-24 19:41:56
【问题描述】:

使用 PHP,我试图用 MySQL 数据库中两个不同表的数据填充 HTML 列表。每个表的结构如下:

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 为“ucla”的学生,则生成的 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>

每个&lt;li&gt; 项目将与数据库中的特定student_id 值相关联。如何编写从数据库中选择/加入适当记录的 PHP?

【问题讨论】:

  • +1 用于在 SO 问题示例数据中包含 Bob Loblaw

标签: php mysql html join


【解决方案1】:

使用LEFT JOIN

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

【讨论】:

  • 啊,我对不同类型的连接以及何时使用它们非常陌生。我一直在尝试使用 INNER JOIN,甚至没有正确构建它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-20
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多