简体   繁体   English

内部联接SQL查询

[英]INNER JOIN SQL QUERY

I'm having a simple problem with this INNER JOIN query... I have a database, named BCC. 我对这个INNER JOIN查询有一个简单的问题...我有一个名为BCC的数据库。 I have 2 tables, question and subject. 我有2张桌子,有问题和有主题。 In the question table, it includes the course and cat(categories) and question. 在问题表中,它包括课程和类别。 In the subject table, only ID and subject(same as the category but different field name). 在主题表中,只有ID和主题(与类别相同,但字段名称不同)。

Basically, I fetch all the questions in the question database, but I want them to arranged according to course and cat/subject. 基本上,我会在问题数据库中获取所有问题,但我希望根据课程和类别来安排它们。 I have a accordion style for this feature. 我对此具有手风琴风格。 The link below, is the screenshot of the display output on this query 下面的链接是此查询的显示输出的屏幕截图

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

But I look for the INNER JOIN query, and I don't even know which part I get wrong or did I forgot some code to execute the query. 但是我正在寻找INNER JOIN查询,我什至不知道我弄错了哪一部分,或者我忘记了一些执行查询的代码。 I think I scramble them too much that's why I got confused. 我想我对它们的争夺太多了,这就是为什么我感到困惑。 Here's the SQL Query. 这是SQL查询。

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

Any help is appreciated. 任何帮助表示赞赏。 Thank you! 谢谢!

I found a answer on my question last night and it is really working :)) 昨晚我在我的问题上找到了答案,它确实有效:))

<?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);     
?>

Instead of using INNER JOIN in my query, I execute another query and used the variable. 我在查询中没有使用INNER JOIN,而是执行了另一个查询并使用了变量。

You have to use ON with some matching condition. 您必须在某些匹配条件下使用ON。 Your query should go like this: 您的查询应如下所示:

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`

Please use alias with your tables. 请在表中使用别名

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM