我试图通过仅包含对 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/