[英]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.