我有两张桌子
第一个有用户交易:
Date Transaction P1 P2 P3 P4 P5
(P1-P5 是三位数的用户 ID)每笔交易都有 1、2、3、4 甚至 5 个与之关联的用户。
第二个表有用户信息:
ID NAME ACTIVE
我习惯于使用 JOIN 来显示用户的姓名而不是他们的 ID,但是对于五个用户,我不知道如何在我的 PHP/HTML 表中显示他们的姓名。
有人能对此有所了解吗?
您可以为每个用户加入同一个表。如果这样做,则必须以不同的方式对多个连接表进行别名。
select t1.Date, t1.Transaction, t1.P1, t1.P2, t1.P3, t1.P4, t1.P5
u1.name, u2.name, u3.name, u4.name, u5.name
from table1 t1
left outer join table2 u1 on t1.p1 = u1.id
left outer join table2 u2 on t1.p2 = u2.id
left outer join table2 u3 on t1.p3 = u3.id
left outer join table2 u4 on t1.p4 = u4.id
left outer join table2 u5 on t1.p5 = u5.id
null
如果没有,某些字段将具有值ID
。
SELECT a.`Date, a.`Transaction`,
b.name as P1Name,
c.name as P2Name,
d.name as P3Name,
e.name as P4Name,
f.name as P5Name
FROM transactions a
LEFT JOIN info b
on a.p1 = b.id
LEFT JOIN info c
on a.p1 = c.id
LEFT JOIN info d
on a.p1 = d.id
LEFT JOIN info e
on a.p1 = e.id
LEFT JOIN info f
on a.p1 = f.id
我认为您应该将所有名称放在以换行符分隔的“td”中。