2011-05-23 59 views
0

我有兩個表:帳戶和授權。如何加入到具有特定條件的表

帳戶表具有客戶和代理商的全名和ID。授權表具有在該客戶下的客戶和代理的標識。帳戶表具有全名,以及代理和客戶的ID。

我一直收到代理商名稱而不是客戶名稱。不知道如何解決這個問題!

更新:我能夠得到正確的ID,但仍然顯示客戶的名稱。
代碼:

//Query 
$sql = "SELECT authorizations.customer_id, accounts.fullname 
     FROM authorizations 
     INNER JOIN accounts ON 
     authorizations.system_id = accounts.authorizating_customer 
     WHERE authorizations.agent_id = '$did'"; 

$result=mysql_query($query); 
$num=mysql_numrows($result); 
mysql_close(); 
echo ""; 
$i=0; 
while ($i < $num) { 
    $name = mysql_result($result, $i, "fullname"); 
    echo ""; 
    echo ""; 
    $i++; 
} 
+1

您自己加入表格,而不是加入帳戶'FROM授權LEFT JOIN授權' – feeela 2011-05-23 14:33:54

+1

只是爲了記錄:echo「」;與試圖不顯示任何東西一樣有用。更糟的是;你是。它很混亂。你可以刪除它,因爲它實際上沒有做任何事情。 – 2011-05-23 14:44:16

回答

2

嘗試

$sql = "SELECT 
      authorizations.customer_id, 
      accounts.fullname 
     FROM 
      authorizations 
       LEFT JOIN 
        accounts 
       ON 
        accounts.authorizing_person = authorizations.customer_id 
     WHERE 
      authorizations.agent_id = '$agentid' 
     ORDER BY 
      accounts.id DESC"; 

$result = mysql_query($query); 

$num = mysql_numrows($result); 

mysql_close(); 

echo ""; 

$i=0; 
while ($i < $num) { 

    $name = mysql_result($result,$i,"fullname"); 
    echo ""; 
    echo ""; 
    $i++; 
} 
+0

嗨,我試過。但它給我的代理人名稱不是客戶的名字。 – AAA 2011-05-23 14:47:53

+0

好吧,然後嘗試將'accounts.fullname'更改爲客戶名稱的列名稱。 – 2011-05-23 14:57:02

1

我不知道你的表的結構,但你可以按照這個僞代碼

SELECT name_of_person FROM accounts WHERE authorizing_person = (SELECT authorizing_person FROM authorization WHERE agent_id = '$agentid'" 
+0

給我同樣的結果,它代表了我的代理名稱。 – AAA 2011-05-23 15:56:46

0

我知道了。只需使用customer_id而不是authorizing_customer。