56,675
社区成员
发帖
与我相关
我的任务
分享
SELECT a.*
FROM a, (
SELECT b.userid FROM b WHERE b.qid = 2
UNION
SELECT c.ruid FROM b, c WHERE b.qid = 2 AND b.userid = c.userid
)x WHERE x.userid = a.userid
SELECT a.* IFNULL(d.name, '本人') as name
FROM(
SELECT a.*
FROM a, (
SELECT b.userid FROM b WHERE b.qid = 2
UNION
SELECT c.ruid FROM b, c WHERE b.qid = 2 AND b.userid = c.userid
)x WHERE x.userid = a.userid
) a LEFT JOIN d ON d.rxh = a.userid
SELECT a.* IFNULL(d.name, '本人') as name
FROM(
SELECT a.*
FROM a, (
SELECT b.userid FROM b WHERE b.qid = 2
UNION
SELECT c.ruid FROM b, c WHERE b.qid = 2 AND b.userid = c.userid
)x WHERE x.userid = a.userid
) LEFT JOIN d ON d.rxh = a.userid
SELECT a.*
FROM a, x.rname (
SELECT b.userid, '' as rname FROM b WHERE b.qid = 2
UNION
SELECT c.ruid , e.rname FROM b, c ,d WHERE b.qid = 2 AND b.userid = c.userid and d.rxh = c.rxh
)x WHERE x.userid = a.userid
可这样得到的 rname 全部为空 ‘’
SELECT
b.oid, a.*
FROM b -- 现在希望 通过 表 b 中 分类编号 qid , 检索出 表 b 中 所有的 userid
INNER JOIN c ON b.userid=c.userid --- 以及 和 表 b 中检索出的 userid 关联的 表 c
INNER JOIN a ON c.ruid = a.userid -- 中 ruid 在 表 a 中的 学习记录
where b.qid = ?
这个结果不是我希望得到的
我希望的最终数据是 所有表 b 中的人, 以及表 b 中人 相 关联的表 c 中的人的 所有在 表 a 中的学习记录
SELECT
b.oid, a.*
FROM b -- 现在希望 通过 表 b 中 分类编号 qid , 检索出 表 b 中 所有的 userid
INNER JOIN c ON b.userid=c.userid --- 以及 和 表 b 中检索出的 userid 关联的 表 c
INNER JOIN a ON c.ruid = a.userid -- 中 ruid 在 表 a 中的 学习记录