[英]Inner join multiple times on same table on same column
我有两个 mySQL 表:
1:id、代理、发起人、promoterrank、prevrank、newrank、promotiontime
2:id,等级
newrank 和promoter rank 是与表2 中的ID 对应的INTS(例如:Trainee = 2、Supervisor = 4 等...)
我正在尝试以一种可以显示等级的实际名称而不是与等级相关的 ID 的方式将 A 连接到 B。 我已经成功地为 newrank 做到了这一点,但无论我尝试为promoterrank 做什么,它都不起作用。 我感谢所有的帮助。
这是 SQL 查询我使用:
SELECT A.*,B.rank as brank,DATE_FORMAT(promotiontime, '%Y-%m-%dT%H:%i:%s0Z') FROM promotions A
INNER JOIN ranks B ON A.newrank = B.id
WHERE agent='".$_POST['agent']."' ORDER BY id DESC
还有我的 PHP:
<td><?php echo $row['brank']; ?></td>
<td><a href="profile.php?user=<?php echo $row['promoter']; ?>"><?php echo $row['promoter']; ?></a></td>
<td><?php echo $row['promoterrank']; ?></td>
您想要解码两个等级值(一个用于 newrank ,一个用于promoterrank ),那么您应该两次加入该表等级,例如:
SELECT A.*
, B.rank as newrank
, C.rank as promoterrank
DATE_FORMAT(promotiontime, '%Y-%m-%dT%H:%i:%s0Z')
FROM promotions A
INNER JOIN ranks B ON A.newrank = B.id
INNER JOIN ranks C ON A.promoterrank = C.id
WHERE agent='".$_POST['agent']."' ORDER BY id DESC
无论如何,您应该避免在 sql 代码中使用 php var ..(您有 sqlinjection 的风险)所以看看准备好的语句和绑定参数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.