查询中不存在 LIMIT 的 LEFT JOIN
LEFT JOIN without LIMIT existing in query
我有以下 tables:
投票:
id | question | votes
1 | Your name? | 2
poll_answers:
id | id_poll | answer
1 | 1 | John
2 | 1 | Jorge
3 | 1 | Charlie
我想对 return poll
数据和 poll_answers
数据做一个 SELECT
,id_poll
对应于 id
poll
table.
所以,我做到了:
SELECT question, votes, answer
FROM poll
LEFT JOIN poll_answers
ON poll.id = id_poll
WHERE poll.id = '1'
LIMIT 1
预期输出将是 return poll
数据和 poll_answers
table 上的三个答案,但是,输出是:
array(1) { [0]=> array(3) { ["question"]=> string(10) "Your name?"
["votes"]=> string(1) "2" ["answer"]=> string(5) "Charlie" } }
我想要的:
array(1) { [0]=> array(3) { ["question"]=> string(10) "Your name?"
["votes"]=> string(1) "2" ["answer"]=> string(7) "Charlie" ["answer"]=>
string(5) "Jorge" ["answer"]=> string(4) "John" } }
如何做到这一点,在主查询上使用 LIMIT
但在 LEFT JOIN
上不使用 LIMIT
?
我想你想要聚合:
SELECT p.question, p.votes, GROUP_CONCAT(pa.answer) as answer
FROM poll p LEFT JOIN
poll_answers pa
ON p.id = pa.id_poll
WHERE p.id = 1
GROUP BY p.id;
我有以下 tables:
投票:
id | question | votes
1 | Your name? | 2
poll_answers:
id | id_poll | answer
1 | 1 | John
2 | 1 | Jorge
3 | 1 | Charlie
我想对 return poll
数据和 poll_answers
数据做一个 SELECT
,id_poll
对应于 id
poll
table.
所以,我做到了:
SELECT question, votes, answer
FROM poll
LEFT JOIN poll_answers
ON poll.id = id_poll
WHERE poll.id = '1'
LIMIT 1
预期输出将是 return poll
数据和 poll_answers
table 上的三个答案,但是,输出是:
array(1) { [0]=> array(3) { ["question"]=> string(10) "Your name?" ["votes"]=> string(1) "2" ["answer"]=> string(5) "Charlie" } }
我想要的:
array(1) { [0]=> array(3) { ["question"]=> string(10) "Your name?" ["votes"]=> string(1) "2" ["answer"]=> string(7) "Charlie" ["answer"]=> string(5) "Jorge" ["answer"]=> string(4) "John" } }
如何做到这一点,在主查询上使用 LIMIT
但在 LEFT JOIN
上不使用 LIMIT
?
我想你想要聚合:
SELECT p.question, p.votes, GROUP_CONCAT(pa.answer) as answer
FROM poll p LEFT JOIN
poll_answers pa
ON p.id = pa.id_poll
WHERE p.id = 1
GROUP BY p.id;