mysql将两行连接在同一行中

sauutmhj  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(490)

我试着把两张table连在一条线上。我试试这个

SELECT p.*
     , t.joursPrevus joursInge 
  FROM projet p
  JOIN temps t
    ON t.projet_id = p.idProjet 
 WHERE t.role_id = 1
 UNION
SELECT p.*
     , t.joursPrevus joursTech 
  FROM projet p 
  JOIN temps t
    ON t.projet_id = p.idProjet 
 WHERE t.role_id = 2

但是我得到了这个表,但是我想合并这个表:表1和表2在同一行上有相同的idprojet,role\u id:1是joursinge,role\u id:2是jourstech
我试着吵架,比如:
Idrojet-nom-client-achatsprevus-achatsrestants-date处子秀-datefin-fini-joursprevus(角色号:1)-joursprevus(角色号:2)
如果有什么解决办法来做我想做的事,因为我卡住了!

a11xaf1n

a11xaf1n1#

可能最简单的方法就是 join 两次:

SELECT p.*, t1.joursPrevus AS joursInge, t2.joursPrevus AS joursTech
FROM projet p
INNER JOIN temps t1 ON t1.projet_id = p.idProjet  AND t1.role_id = 1
INNER JOIN temps t2 ON t2.projet_id = p.idProjet  AND t2.role_id = 2

这假设表中没有缺少角色 temps 对于每个项目-否则,您可以使用 left join 相反。

相关问题