2010-11-25 91 views
1

我在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); 

回答

6

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 
+0

谢谢......我打算这样做,但它会变得非常冗长。有没有办法说“所有领域”+“重命名这些”。或者使用这种语法的前缀与文件名称的方式?我在其他应用程序中看到了诸如$ row-> file->字段的内容。 – newt 2010-11-25 20:51:02

相关问题