Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在与mysqli和php中的表2连接时从表1中获取不同的记录_Php_Mysql_Sql_Database - Fatal编程技术网

在与mysqli和php中的表2连接时从表1中获取不同的记录

在与mysqli和php中的表2连接时从表1中获取不同的记录,php,mysql,sql,database,Php,Mysql,Sql,Database,我试图从两个表中获取数据,问题id为外键的问题和答案,但我得到了多个问题记录。“我的答案”表包含多条具有相同问题id的记录,并且输出获取问题记录作为答案值时间。我怎样才能避免它,请帮忙 <?php $sql = "SELECT DISTINCT(questions.question),answers.answers FROM questions INNER JOIN answers ON questions.question_id = answers.question_id" ;

我试图从两个表中获取数据,问题id为外键的问题和答案,但我得到了多个问题记录。“我的答案”表包含多条具有相同问题id的记录,并且输出获取问题记录作为答案值时间。我怎样才能避免它,请帮忙

<?php
$sql = "SELECT DISTINCT(questions.question),answers.answers FROM questions INNER JOIN answers ON questions.question_id = answers.question_id" ;
     $result = $connection->query($sql);
        while($row = $result->fetch_assoc()) {
            $question = $row['question'];
            $answers = $row['answers'];
?>
在此处打印结果…

这是您的查询:

SELECT DISTINCT(questions.question), answers.answers
FROM questions INNER JOIN
     answers
     ON questions.question_id = answers.question_id;
我的第一个观察结果是你不明白。SELECT DISTINCT是一个关键字。DISTINCT修改SELECT。它不是一个函数

其次,您的查询定义了一个结果集,每个问题和答案有一行。这是非常合理的,而且没有必要进行区分

我怀疑你想把答案放在一行。当然,您可以在PHP中实现这一点。您也可以使用GROUP_CONCAT:


注意表别名的使用。这些功能使查询更易于编写和读取。

您的查询所做的正是它应该做的。你需要编辑你的问题并指定你想让它做什么。我只想一次得到问题,并将相应的答案值作为该问题的数组元素。\u id。这里有一点旁注。存储html标记标记是不明智的。您应该在输出期间使用这些。HTML/PHP/MySQL是不同的动物,应该这样对待。您还可以减少数据库中的数据量。由于答案选项不同,我不能使用GROUP_CONCAT,对吗?每个问题只能得到一个答案选项。@PrudhviMallavarapu。。你试过这个问题了吗?它将答案组合成一个字符串。我忘了在GROUP_CONCAT后面保留“AS”。我现在拿到了,谢谢。
SELECT q.question, GROUP_CONCAT(a.answers SEPARATOR '|') as answers
FROM questions q INNER JOIN
     answers a
     ON q.question_id = a.question_id
GROUP BY q.question;