2015-02-07 230 views
1
<?php 
$cid=$_REQUEST['cn']; 
$sid=$_REQUEST['sn']; 
$query="select name,NAME from products a,category b where a.category_id=$cid and a.store_id=$cid and a.category_id=b.ID "; 

$result= mysqli_query($link, $query)or die(mysqli_error($link)); 
?> 

我编写简单的程序,它显示以下错误。如果我提到名称为products.name,那么它会显示未知的列products.name。字段列表中的列'name'含糊不清

主要错误是在字段列表列“名”不明确

+0

此查询完美工作 $ query =“从tbemployee a,tbdep b,tbdsg c选择empno,ename,eadd,esal,edno,edsgcod,dname,dsgnam,其中a.edno = b.dno和a。 edsgcod = c.dsgcod“; – 2015-02-07 21:01:14

+0

试试'a.name,b.name' – 2015-02-07 21:16:02

回答

1

你需要预先选定列,因为你正在做在包含具有相同的名称如:

select a.name as prod_name,b.NAME as cat_name 
from products a,category b 
    where a.category_id=$cid 
    and a.store_id=$cid 
    and a.category_id=b.ID 
列多个表的查询
+0

谢谢..正在工作。但为什么我们需要这个,。以及为什么该查询正在perfetcly运行,我提到 – 2015-02-07 21:05:40

+0

我想这是因为您选择了所有表之间不共享的列。如果在产品和类别中都有名为“name”的列,则会成为问题 - 定义会变得模糊不清。如果这些列被命名为例如。 “p_name”和“c_name”这个问题就不存在了。 – castor 2015-02-07 21:07:33

+0

和另一个问题...为什么城市名称在城市名称运行时发生错误 – 2015-02-07 21:08:00