在同一列的同一表上多次进行内部联接

问题描述 投票:0回答:1

我有两个mySQL表:

1:ID,代理,启动器,启动器等级,上级,新等级,升级时间

2:ID,等级

newrank和促进者等级是对应于表2中ID的INTS(例如:受训者= 2,主管= 4,等等...]

我正在尝试以一种可以显示等级的实际名称(而不是与等级相关的ID相对)的方式将A内连接到B。我已经为newrank成功地做到了这一点,但是不管我为启动器等级做什么,它都行不通。我感谢所有帮助。

这是使用的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>
php mysql inner-join
1个回答
0
投票

您要为等级解码两个值(一个为newrank,一个为启动器rank,那么您应该两次加入表排名,例如:

    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
© www.soinside.com 2019 - 2024. All rights reserved.