MYSQL 带连接的子查询
MYSQL Subqueries with join
我正在尝试通过 table 来 select 值,该 table 仅包含对 mysql 中其他 table 的引用。
引用 table 仅包含 INT userId、answer1、answer2、date。
他们指的是用户 table 和答案 table。答案table有三列:id, answer, difficulty.
我遇到的问题是 select 在同一查询的同一列中输入两个值。这是我到目前为止得到的
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;
如果我理解得很好,您需要连接到来自 table feed
的 id 关于来自 users
table 的用户的详细信息以及每个拉动的答案它来自 answers
table。因此,除了您已经完成的 left join
到 users
之外,每个答案 ID 上还有 2 个额外的连接 - 它会导致分别搜索 answer1 和 answer2 的答案 table。
希望对您有所帮助。
我正在尝试通过 table 来 select 值,该 table 仅包含对 mysql 中其他 table 的引用。 引用 table 仅包含 INT userId、answer1、answer2、date。
他们指的是用户 table 和答案 table。答案table有三列:id, answer, difficulty.
我遇到的问题是 select 在同一查询的同一列中输入两个值。这是我到目前为止得到的
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;
如果我理解得很好,您需要连接到来自 table feed
的 id 关于来自 users
table 的用户的详细信息以及每个拉动的答案它来自 answers
table。因此,除了您已经完成的 left join
到 users
之外,每个答案 ID 上还有 2 个额外的连接 - 它会导致分别搜索 answer1 和 answer2 的答案 table。
希望对您有所帮助。