MySQL JOIN:多个字段同名

时间:2013-07-12 19:41:39

标签: mysql join

我不是SQL的专业人士,但我正在使用以下SELECT:

SELECT 
        certificate.id, 
        certificate.date_created,
        certificate.date_approved,
        certificate.notes,
        certificate.id_user_student,
        certificate.id_user_exm,
        certificate.id_user_eval,

        user.name AS student_name,
        user.name AS exm_name,
        user.name AS eval_name

        FROM certificate
        LEFT JOIN 
            user ON certificate.id_user_student = user.id AND
                    certificate.id_user_exm = user.id AND
                    certificate.id_user_eval = user.id

我的意见是能够将表nameuser中的JOIN列放入certificate表中以放置所有用户ID字段。

在表格certificate中,id_user_studentid_user_exmid_user_eval列包含表user上可用的用户ID,我想在结果集。

我当前的查询仅适用于第一个结果。谁能告诉我怎么解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

您需要三个连接操作,每个“查找”基于ID的名称。您需要三个对用户表的引用,每个引用一个外键引用,例如:

SELECT c.id
     , c.date_created
     , c.date_approved
     , c.notes
     , c.id_user_student
     , c.id_user_exm
     , c.id_user_eval
     , s.name AS student_name
     , e.name AS exm_name
     , v.name AS eval_name
  FROM certificate c
  LEFT
  JOIN user s ON s.id = c.id_user_student
  LEFT
  JOIN user e ON e.id = c.id_user_exm
  LEFT
  JOIN user v ON v.id = c.id_user_eval