我试图通过一个只包含对mysql中其他表的引用的表来选择值。 参考表仅包含INT userId,answer1,answer2,date 。
他们正在引用用户表和答案表。答案表有三列: ID,答案,难度。
我遇到的问题是从同一查询中的同一列中选择两个值。继承了迄今为止我所拥有的一切
SELECT
nickname,
(SELECT answer FROM feed LEFT JOIN answerTable a ON answer1 = s.id) AS first,
(SELECT answer FROM feed LEFT JOIN answerTable a ON answer2 = s.id) AS second,
DATE_FORMAT(date,'%H:%i:%S %e-%c-%Y') AS date
FROM feed
LEFT JOIN users ON user = id;
使用此查询,我在子查询中获得多个值。
我已经尝试了一段时间,需要一些新的眼睛。 谢谢你的帮助。
答案 0 :(得分:0)
请尝试:
SELECT
nickname,
a1.answer AS a_first,
a2.answer AS a_second,
DATE_FORMAT(date,'%H:%i:%S %e-%c-%Y') AS date
FROM
feed
LEFT JOIN users ON feed.userId = users.id
LEFT JOIN answerTable a1 ON feed.answer1 = a1.id
LEFT JOIN answerTable a2 ON feed.answer2 = a2.id;
如果我理解得很清楚,您需要从表feed
连接到users
表中用户的详细信息,以及从answers
中提取的每个答案的详细信息}表。因此,除了您已经执行的left join
到users
之外,每个答案ID都有2个额外的连接 - 它会分别搜索答案表以获取答案1和答案2.
我希望它可能对你有所帮助。