我想內部連接到表與SQL這樣的: -SQL書面方式格式
我認爲,所謂的「ID」一鍵名稱列存在於兩個表,因此$ ID = $ record_unscored ['ID'];會被覆蓋;
我試過$ id = $ record_unscored ['user.id'];但它不工作!其實我該怎麼指定表名呢?
謝謝!
我想內部連接到表與SQL這樣的: -SQL書面方式格式
我認爲,所謂的「ID」一鍵名稱列存在於兩個表,因此$ ID = $ record_unscored ['ID'];會被覆蓋;
我試過$ id = $ record_unscored ['user.id'];但它不工作!其實我該怎麼指定表名呢?
謝謝!
使用別名:
$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]
";
你可以做到這一點使用該功能
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;
}
如果從用戶慣於ID,你可以使用類似這樣 選擇[用戶]你可以創建一個別名場等 [ID]爲「用戶ID」,[tenderrc。 [*] from ... 我來自mySql世界,但我認爲它可以這樣管理 和更高版本以這種方式訪問它 $ id = $ record_unscored ['userid'];
...不要偷懶。 :) – 2012-04-27 10:39:42