字段名称相同时SQL连接
问题描述:
我在node和url_alias中都有字段“language”。 当我做转储时,第二个“语言”变量覆盖第一个。 如何识别两个变量?字段名称相同时SQL连接
$string = "SELECT * FROM {node} as node " .
" LEFT JOIN {url_alias} as url " .
" ON url.src = CONCAT('node/', node.nid) " .
" ORDER BY node.type , node.nid " ;
$result= db_query($string);
while ($row = db_fetch_object($result)){
echo $row->language;
var_dump($row);
答
在SELECT
条款明确指定的列名,而不是使用*
,并给出任何重复的列名的别名。例如,
SELECT node.nid,
node.language as NodeLanguage,
url.language as UrlLanguage
FROM {node} as node
LEFT JOIN {url_alias} as url
ON url.src = CONCAT('node/', node.nid)
ORDER BY node.type , node.nid
谢谢......我打算这样做,但它会变得非常冗长。有没有办法说“所有领域”+“重命名这些”。或者使用这种语法的前缀与文件名称的方式?我在其他应用程序中看到了诸如$ row-> file->字段的内容。 – newt 2010-11-25 20:51:02