真的想弄清楚,为什么SQL查询不会通过。我认为结构有点不对,但无法弄清楚到底在哪里。对表的引用都是正确的。
SELECT tap_questionnaires.id,
tap_questionnaires.NAME,
tap_questionnaires.active,
tap_useranswers_ip.questionnaire_id,
Count(tap_useranswers_ip.ip)
FROM tap_questionnaires
LEFT JOIN tap_useranswers_ip
ON tap_questionnaires.id = tap_useranswers_ip.questionnaire_id
WHERE author_email = admin@admin.com
答案 0 :(得分:0)
如果使用count,则需要对select子句中的其他列使用group by。
SELECT TAP_questionnaires.id, TAP_questionnaires.name, TAP_questionnaires.active, TAP_useranswers_ip.questionnaire_id, COUNT(TAP_useranswers_ip.ip) FROM TAP_questionnaires LEFT JOIN TAP_useranswers_ip on TAP_questionnaires.id=TAP_useranswers_ip.questionnaire_id WHERE author_email="admin@admin.com"
group by TAP_questionnaires.id, TAP_questionnaires.active
我认为TAP_questionnaires.name没有必要,因为我认为它取决于TAP_questionnaires.id。 TAP_useranswers_ip.questionnaire_id与TAP_questionnaires.id的值相同
希望有所帮助!
答案 1 :(得分:0)
我认为这个版本更清晰:
SELECT q.id, q.name, q.active, COUNT(a.ip)
FROM TAP_questionnaires q LEFT JOIN
TAP_useranswers_ip a
ON on q.id = a.questionnaire_id
WHERE author_email = 'admin@admin.com'
GROUP BY q.id, q.name, q.active;
注意:
GROUP BY
。a.questionnaire_id
。你已经有了q.id。