0

このクエリを実行しようとしています。これらの 3 つのテーブル プロジェクト ID 名があります

authors
    id
    id_user
    fk_id project
    type = author, editor

テーブルには、作成者であり編集者である作成者がいます。mysqlでクエリを作成しようとしています。1つのレコードで作成者と発行者を確認できます。

どちらか一方に相談します

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'

そのタイプのクエリを使用するか、間違っている場合はこれを使用できます。

4

1 に答える 1

1

LEFT または INNER JOIN を使用して、WHERE 句にすべてを含める代わりに ON blablabla を作成することをお勧めします。ただし、これを試してください:

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
于 2013-05-31T17:47:15.783 に答える