【问题标题】:INNER JOIN SQL QUERY内连接 SQL 查询
【发布时间】:2015-06-21 16:48:00
【问题描述】:

我在使用这个 INNER JOIN 查询时遇到了一个简单的问题... 我有一个名为 BCC 的数据库。我有 2 张桌子,问题和主题。 在问题表中,它包括课程和猫(类别)和问题。 在主题表中,只有 ID 和主题(与类别相同,但字段名称不同)。

基本上,我会获取问题数据库中的所有问题,但我希望它们根据课程和猫/主题进行排列。我有一个手风琴风格的这个功能。下面的链接,是这个查询显示输出的截图

SELECT `question` FROM question WHERE `course`=$course AND `cat`=$cat;

但是我寻找 INNER JOIN 查询,我什至不知道我错了哪一部分,或者我忘记了一些代码来执行查询。我想我把它们打乱了太多,这就是我感到困惑的原因。这是 SQL 查询。

SELECT `question` FROM question WHERE `course`=$course AND `cat`=$cat INNER JOIN `subject` ON `subject` WHERE `subject`=`cat`

感谢任何帮助。谢谢!

【问题讨论】:

  • 所有 WHERE 子句都应该在 INNER JOIN 之后
  • 这是截图 [link] (prntscr.com/6u0m1d) [link]
  • 该屏幕截图没有帮助。不知道那应该做什么。
  • 您好 Maximus,我有 2 个 WHERE 子句,您认为合适吗?我不确定我的 SQL 查询是否使用 INNER JOIN
  • 错了。只能有一个 WHERE 子句,但可以使用 AND/OR 分隔任意数量的条件

标签: php mysql sql-server join


【解决方案1】:

我昨晚找到了我的问题的答案,它确实有效:))

<?php  
    $subject = $subjectRows['subject']; // subject.subject (MATH, ENGLISH, etc)
    $con=mysqli_connect("localhost","root","","bcc");

       if (mysqli_connect_errno()) 
       { 
         echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
       }

       $questionResult = mysqli_query($con,"SELECT * FROM question WHERE `cat` = '" . $subject . "' AND `course` = '". $_SESSION['SESS_COURSE'] ."' ");

      while($questionRows = mysqli_fetch_array($questionResult, MYSQL_BOTH)) 
      {  
      echo $questionRows['question'].'?<br>';
      $qid = $questionRows['qid'];
      echo '<input type="hidden" name="qqqq[]" value="'.$qid.'" />';
      echo '<select name="answer[]">';
      echo '<option>Select Answer></option>';
      $resultik = mysql_query("SELECT * FROM choices WHERE question='$qid' ORDER BY RAND() LIMIT 3");
      while($rowik = mysql_fetch_array($resultik))
      {
        echo '<option>';
        echo $rowik['opt'];
        echo '</option>';
      }
      echo '</select><br><br>';
    } 
      mysqli_free_result($questionResult);     
?>

我没有在查询中使用 INNER JOIN,而是执行了另一个查询并使用了变量。

【讨论】:

    【解决方案2】:

    您必须在某些匹配条件下使用 ON。 你的查询应该是这样的:

    SELECT column_list
    FROM t1
    INNER JOIN t2 ON join_condition1
    
    select 
        `question` 
    FROM question
    INNER JOIN `subject` ON --- keep join condition
    WHERE `course`=$course AND `cat`=$cat and `subject`=`cat`
    

    请在您的表格中使用别名

    【讨论】:

    • 嗨!现在这是我的 SQL 查询 code SELECT question.question,question.course,question.cat,question.qid FROM question INNER JOIN subject ON question.cat = subject.subject WHERE course=$course AND cat=$cat ORDER BY subject.id ASC code 但它仍然显示所有主题中的所有问题.. 我希望他们显示每个主题的所有问题
    猜你喜欢
    • 2017-10-19
    • 2016-03-29
    • 2013-07-06
    • 1970-01-01
    • 2011-04-15
    • 2018-03-23
    • 2013-04-26
    • 2012-12-28
    • 1970-01-01
    相关资源
    最近更新 更多