![](/img/trans.png)
[英]MySQL Query - inner join on multiple fields from the same relating table
[英]Join two fields from same table in mysql
SELECT pms.id,
pms.id_from,
pms.id_to,
pms.fecha,
pms.leida,
usuarios.img_src as avatar_from,
usuarios.alias as name_from,
usuarios.img_src as avatar_to,
usuarios.alias as name_to
FROM pms
LEFT JOIN usuarios ON usuarios.id = pms.id_from
LEFT JOIN usuarios ON usuarios.id = pms.id_to
每行有兩個引用用法(別名或img_src)的問題:
我得到這個錯誤:
The following errors were reported:
Not unique table/alias: 'usuarios'
或這個
SELECT pms.id,
pms.id_from,
pms.id_to,
pms.fecha,
pms.leida,
usuarios.img_src as avatar_from,
usuarios.alias as name_from,
usuarios.img_src as avatar_to,
usuarios.alias as name_to
FROM pms
LEFT JOIN usuarios ON usuarios.id = pms.id_from OR usuarios.id = pms.id_to
可行,但每個_to和_from的名稱和圖像都相同
那么,去這里的路是什么?
是的,加入同一個表將需要唯一的別名來表示表名,例如
select
p.id,
p.id_from,
p.id_to,
p.fecha,
p.leida,
u1.img_src as avatar_from,
u1.alias as name_from,
u2.img_src as avatar_to,
u2.alias as name_to
from pms p
LEFT JOIN usuarios u1 ON u1.id = p.id_from
LEFT JOIN usuarios u2 ON u2.id = p.id_to
如果您兩次使用同一張表,則需要使用不同的別名
SELECT pms.id,
pms.id_from,
pms.id_to,
pms.fecha,
pms.leida,
u_from.img_src as avatar_from,
u_from.alias as name_from,
u_to.img_src as avatar_to,
u_to.alias as name_to
FROM pms
LEFT JOIN usuarios u_from ON u_from.id = pms.id_from
LEFT JOIN usuarios u_to ON u_to.id = pms.id_to
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.