【发布时间】:2016-03-12 20:48:32
【问题描述】:
我有以下表格:
投票:
id | question | votes
1 | Your name? | 2
poll_answers:
id | id_poll | answer
1 | 1 | John
2 | 1 | Jorge
3 | 1 | Charlie
我想做一个SELECT 来返回poll 数据和poll_answers 数据,其中id_poll 对应于id 表上的id。
所以,我做到了:
SELECT question, votes, answer
FROM poll
LEFT JOIN poll_answers
ON poll.id = id_poll
WHERE poll.id = '1'
LIMIT 1
预期的输出将返回poll 数据和poll_answers 表上的三个答案,但是,输出是:
array(1) { [0]=> array(3) { ["question"]=> string(10) "你的名字?" ["votes"]=> string(1) "2" ["answer"]=> string(5) "查理" } }
我想要什么:
array(1) { [0]=> array(3) { ["question"]=> string(10) "你的名字?" ["votes"]=> string(1) "2" ["answer"]=> string(7) "查理" ["answer"]=> string(5) "Jorge" ["answer"]=> string(4) "约翰" } }
如何做到这一点,在主查询上使用LIMIT,但在LEFT JOIN 上不使用LIMIT?
【问题讨论】:
-
我不确定您对 主查询的限制 是什么意思;使用
WHERE poll.id = '1',您已经将poll表中的结果数限制为1。所以据我所知,您根本不需要LIMIT。 -
我编辑了我的问题,我理解他们的想法,但是,使用
LIMIT我们没有更多的性能?
标签: php mysql join left-join inner-join