gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:23:46 24 4
gpt4 key购买 nike

我正在尝试使用 Question_id 作为外键从两个表(问题和答案)中获取数据,但我收到了多个问题记录。我的答案表包含具有相同 Question_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;

我的第一个观察结果是您不理解DISTINCTSELECT DISTINCT 是一个关键字。 DISTINCT 修改 SELECT。它不是一个函数。

其次,您的查询定义一个结果集,每个问题和答案各有一行。这是非常合理的——并且 DISTINCT 是不必要的。

我怀疑您希望将答案放在一行上。当然,您可以在 PHP 中做到这一点。您还可以使用GROUP_CONCAT():

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;

注意表别名的使用。这些使得查询更容易编写和阅读。

关于php - 在 mysqli 和 php 中与表 2 连接时从表 1 中获取不同的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48721236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com