我需要找到在给定调查中回答问题的一个用户。问题通过外部密钥链接到调查。
SELECT risposte.utente, utenti.nome_azienda, domande.id_domanda, utenti.id_utente
FROM (risposte INNER JOIN
domande
ON domande.id_domanda = risposte.chiave_domanda AND domande.chiave_esterna = 38
) INNER JOIN
utenti
ON risposte.utente = utenti.id_utente
这个查询给我的显然是用户发送的每一个答案。因此,例如,如果用户“John”回答了 3 个问题的调查,我将在我的查询中得到三重结果。我尝试使用 GROUP BY risposte.utente or GROUP BY utenti.id_utente
,但导致此错误:
#1055 - Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db_form_intervista.domande.id_domanda' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
我什至尝试使用 DISTINCT,但即使它没有给我错误结果也是一样的。
我是学生,所以这是我第一次尝试这种查询。
谢谢大家。
答案 0 :(得分:0)
一个非常简单的解决方案是使用 LIMIT
子句,在这种情况下,后跟 1
所以查询将是:
SELECT risposte.utente, utenti.nome_azienda, domande.id_domanda, utenti.id_utente
FROM (risposte INNER JOIN
domande
ON domande.id_domanda = risposte.chiave_domanda AND domande.chiave_esterna = 38
) INNER JOIN
utenti
ON risposte.utente = utenti.id_utente
LIMIT 1
要考虑的一个重要问题是,这只会返回它找到的第一条记录。我不确定这是否适合您的情况。