带连接的MYSQL子查询

时间:2015-01-10 05:16:18

标签: mysql join subquery

我试图通过一个只包含对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;

使用此查询,我在子查询中获得多个值。

我已经尝试了一段时间,需要一些新的眼睛。 谢谢你的帮助。

1 个答案:

答案 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 joinusers之外,每个答案ID都有2个额外的连接 - 它会分别搜索答案表以获取答案1和答案2.

我希望它可能对你有所帮助。