我想内部连接到表与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