2012-04-27 70 views
0

我想內部連接到表與SQL這樣的: -SQL書面方式格式

我認爲,所謂的「ID」一鍵名稱列存在於兩個表,因此$ ID = $ record_unscored ['ID'];會被覆蓋;

我試過$ id = $ record_unscored ['user.id'];但它不工作!其實我該怎麼指定表名呢?

謝謝!

回答

1

使用別名:

$check_unscored = " 
     SELECT 
      u.id 
     , u.name 
     , u.userid 
     , u.touser 
     , t.id   AS tender_id    --- column alias 
                --- to remove duplicate names 
     , t.username 
     , t.password 
     FROM [user] AS u       --- table alias her 
      INNER JOIN [tenderrc] AS t   --- and here 
       ON u.[id] = t.[userid] 
        "; 
+1

...不要偷懶。 :) – 2012-04-27 10:39:42

0

你可以做到這一點使用該功能

http://hu2.php.net/manual/en/function.mssql-fetch-field.php

它可以提供「column_source - 從中​​抽取的列的表」。

示例代碼:

$result = mssql_query("...."); 
$check_unscored = " 
    SELECT * 
    FROM  [user] 
    INNER JOIN [tenderrc] ON [user].[id] = [tenderrc].[userid]"; 
$rows = fetch_multitable(mssql_query($check_unscored, $s)); 

foreach($rows as $row){ 
    echo $row->user['id']; 
    echo $row->tenderrc['id']; 
} 

function fetch_multitable($result){ 
    $fields = mssql_num_fields($result); 
    $infos = array(); 
    for($i=0; $i < $fields; $i++){ 
    $fieldinfo = mssql_fetch_field($r, $i); 
    $infos[ $i ] = (object)array(
     'table'=> $fieldinfo -> column_source 
    ,'name' => $fieldinfo -> name 
    ); 
    } 

    $rows = array(); 
    while($raw = mssql_fetch_row($r)){ 
    $row = array(); 
    foreach($raw as $i => $v){ 
     $info = $infos[ $i ]; 
     $row[ $inf->table ][ $inf->name ] = $v; 
    } 
    $rows[] = (object)$row; 
    } 
    return $rows; 
} 
1

如果從用戶慣於ID,你可以使用類似這樣 選擇[用戶]你可以創建一個別名場等 [ID]爲「用戶ID」,[tenderrc。 [*] from ... 我來自mySql世界,但我認爲它可以這樣管理 和更高版本以這種方式訪問​​它 $ id = $ record_unscored ['userid'];