簡體   English   中英

在mysqli和php中與表2聯接時從表1中獲取不同的記錄

[英]Fetch distinct record from table 1 on join with table 2 in mysqli & php

我正在嘗試使用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;

我的第一個觀察結果是您不了解DISTINCT SELECT 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;

請注意,使用表別名。 這些使查詢更易於編寫和閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM