2016-11-25 35 views
0

我有這樣的順序表,我想從這個表中獲取數據,其中每一行取決於其他獲得我需要的信息。繼承格式使用PHP Mysql數據

  ID USERNAME     REFFERAL   USER1           2.   USER2。             user3。             user4。           5.   User5。          

$sql = mysqli_query($server, 「select refferal from profile where id=‘5’」); 
$row1 = mysqli_fetch_assoc($sql); 
$ref1 = $row[‘refferal’]; 

$sql2 = mysqli_query($server, 「select refferal from profile where id=‘$ref1’」); 
$row2= mysqli_fetch_assoc($sql2); 
$ref2 = $row2[‘refferal’]; 

$sql3 = mysqli_query($server, 「select refferal from profile where id=‘$ref2’」); 
$row3= mysqli_fetch_assoc($sql3); 
$ref3 = $row3[‘refferal’]; 

$sql4 = mysqli_query($server, 「select refferal from profile where id=‘$ref3’」); 
$row4= mysqli_fetch_assoc($sql4); 
$ref4 = $row4[‘refferal’]; 

我希望得到的USER4的所有用戶名,用戶3,用戶2,用戶1在一個查詢,如果可能的。這是我到目前爲止已經試過,但我不不認爲它是非常有效的。

+0

這是自聯接查詢 – Drew

+0

我會很高興如果有人向我指出** referral **拼寫有兩個「r」,特別是如果我正在起草原始的HTTP_REFERER http標頭字段https://en.wikipedia.org/wiki/HTTP_referer – WEBjuju

回答

0

加入一個表格時,我發現左連接最容易理解的情況下,右側沒有數據(左側仍然顯示,右側將爲空......在沒有推薦的情況下)。

該查詢將用戶5的原始輸入和通過左連接的自連接進行3次以查找用戶的引用鏈。

select 
    p1.username ref1, p2.username ref2, p3.username ref3, p4.username ref4 
from 
    profile p1 left join 
    profile p2 on p1.refferal = p2.id left join 
    profile p3 on p2.refferal = p3.id left join 
    profile p4 on p3.refferal = p4.id 
where 
    p1.id = 5; 

行的輸出將是四個字段名稱REF1,REF2,REF3和REF4其中REF1是id爲原始用戶= 5

+0

你爲我節省了一些時間 – joshua