MYSQL 带连接的子查询

标签 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;

通过此查询,我在子查询中获得多个值。

我已经尝试了一段时间,需要一些新的眼光来看待这个问题。 感谢您的帮助。

最佳答案

请尝试:

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 连接到 id,从 users 表中获取有关用户的详细信息,并为每个从 中提取的答案>答案表。因此,除了您已经完成的与 users左联接之外,每个答案 ID 上还有 2 个附加联接 - 它会导致分别在答案表中搜索答案 1 和答案 2。

希望对您有所帮助。

关于MYSQL 带连接的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27873107/

相关文章:

MYSQL 多个选择查询在一个重复结果中

php - 没有订单的客户

mysql - SQL选择最小结果集,其总和涵盖给定值

sql - postgresql 中的临时表是否在所有客户端 session 中都可见?

mysql - 加入 mysql 输出

sql-server - SQL View : Join tables without causing the data to duplicate on every row?

MySQL EXISTS 和 ORDER BY

mysql - mysql中的内连接中的子选择仅得到一个结果

mysql - 环回应用程序函数错误

php - 如何获取数据库列表?