在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的帮助,则很难实现,方案是这样的我执行了查询,结果被重复更新以匹配模式,请尝试以下:)