【问题标题】:PHP MYSQL JOIN: Two Similar TablesPHP MYSQL JOIN:两个相似的表
【发布时间】:2012-10-23 10:49:20
【问题描述】:

我正在尝试连接两个具有相同列但值不同的表,但每次输出时都会重复。

这是我的代码:

<?php
                    $dept = $_SESSION['department'];
                  $dept1 = strtolower($dept);
                  $dept2 = str_replace(" ", "_", $dept1);
                $dept4 = "$dept2" . "_200";
                  $dept = $_SESSION['department'];
                  $level = $_SESSION['level'];
                  $level2 = str_replace (" ", "_", $level);

                  if($level ="200_level") {
                    $query = " SELECT * FROM $dept2 Join $dept4";

                    }
                    else
                    {
                    $query = " SELCT * FROM $dept2";

                    }
                  $result = mysql_query($query) or die('<div       class="header5"small_font">Your Courses are not available yet. Pls contact the ICT Unit</div>');
                      while ($row = mysql_fetch_assoc($result))  {
                        $id = $row['id'];
                   $course = htmlspecialchars($row['course_name']);
                 $code = htmlspecialchars($row['course_code']);
                   $status = $row['status'];
                   $unit = htmlspecialchars($row['unit']);   

   ?>  

【问题讨论】:

  • 你能把你的代码简化为查询吗?以这种方式回答要容易得多,而且您仍然应该能够使用相同的答案。 (我确实相信可以使用联合来完成,但目前我必须付出很多努力才能看到​​您的代码的作用......)
  • 这和 PHP 有什么关系?我的意思是,是的,您使用 PHP 获得了一些值,但这只是一个 SQL 问题恕我直言。
  • 我们要做的就是从两个具有相同列但不同值的表中选择值。我试过: SELECT * FROM $dept2 JOIN $dept4 它输出但重复 $dept4 忽略 $dept2。

标签: php mysql join


【解决方案1】:

如果您要获取具有相同列的两个表的内容,MySQL UNION 应该会有所帮助

UNION 用于将多个 SELECT 语句的结果组合成一个结果集。

像这样:

 $query = "(SELECT * FROM $dept2)
            UNION
           (SELECT * FROM $dept4)";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-24
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 2022-11-11
    • 1970-01-01
    相关资源
    最近更新 更多