在mysql中使用相同字段进行查询
我正在尝试做这个查询。 我有这三张桌子 项目 身份证件 名字在mysql中使用相同字段进行查询,mysql,sql,database,Mysql,Sql,Database,我正在尝试做这个查询。 我有这三张桌子 项目 身份证件 名字 authors id id_user fk_id project type = author, editor 在表中,我有作者,他们是创作者,也是编辑 我尝试在mysql中进行查询,您可以在其中的一条记录中看到 谁是作者和出版商 我与其中一位进行咨询 SELECT p.id_project,p.name_project,a.fk_id_user,a.type,u.name FROM proje
authors
id
id_user
fk_id project
type = author, editor
在表中,我有作者,他们是创作者,也是编辑
我尝试在mysql中进行查询,您可以在其中的一条记录中看到
谁是作者和出版商
我与其中一位进行咨询
SELECT p.id_project,p.name_project,a.fk_id_user,a.type,u.name
FROM projects p,users u, authors a
where p.id_project = a.fk_id_project
and a.type = 'author'
and a.fk_id_user = u.id_user
结果是
id_project, name_proyect, type, user, name_user
1 , bambo, author, 145, andrea
我想要的就是这样做
id_project, name_proyect, type, user, name_user, type2, user2, name_user2
1 ,bambo , author,145, andrea, editor, 785, barack
尝试这样做,但不起作用
SELECT p.id_project,p.name_project,a.fk_id_user,a.type,u.name,a.fk_id_user as user2, a.tipo as type2
FROM
projects p, users u, authors to
where p.id_project = a.fk_id_project
and a.type = 'author'
and a.fk_id_user = u.id_user
and user2 = u.id_user
and Typo2 = 'editor'
这种类型的查询可以使用,或者如果我做得不对。建议在blabla上使用LEFT或internal JOIN authors,而不是将所有内容都放在WHERE子句中。但是,请尝试以下方法:
SELECT
p.id_proyecto,
p.nombre_proyecto,
a.tipo,
a.fkidusario,
u.Nombres,
aa.tipo as type2
aa.fkidusario as user2,
uu.Nombres as name_user2
FROM proyectos p
JOIN usuarios u
JOIN usuarios uu
LEFT JOIN responsables a ON p.id_proyecto = a.fkidproyecto AND a.tipo = 'author' AND a.fkidusario = u.id_usuario
LEFT JOIN responsables aa ON p.id_proyecto = aa.fkidproyecto AND aa.tipo = 'editor' AND aa.fkidusario = uu.id_usuario
请详细说明“但不起作用”这句话。当您运行该查询时,实际发生了什么情况?
projects p、users u、authors to
a打字错误吗?如果不需要,您还需要将作者更改为作者a
,他说使用左连接与将所有内容放入WHERE
子句相比,使用type2而不是type2+1。它非常容易阅读。我认为您应该更新您的示例以显示实际的连接。尝试过,但如果没有db schemathanks的帮助,则很难实现,方案是这样的我执行了查询,结果被重复更新以匹配模式,请尝试以下:)