使用mysql中的相同字段进行查询

时间:2013-05-31 17:42:46

标签: mysql sql database

我正在尝试执行此查询。 我有这三张桌子     项目         ID         名称

authors
    id
    id_user
    fk_id project
    type = author, editor
表I中的

是作者的创造者,也是编辑 我正在尝试在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'

这种类型的查询可以使用,或者如果我做错了。

1 个答案:

答案 0 :(得分:1)

建议使用LEFT或INNER JOIN作者使用ON blablabla,而不是在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