如果我需要这样的查询,我会使用类似
$sql = "SELECT c.id AS cartid,c.*,cu.* FROM c,cu WHERE cu.id = c.customerId";
$result = mysql_query($sql) or die(mysql_error());
这里的关键是要对任何重复的列名,如您的SQL查询“身份证”创建别名查询,因此,例如
users.id AS user_id
这让我们重新定义users.id所以这是我们作为USER_ID页面可用时,我们创建变量。使用我目前的网络应用程序,我确实有2个表格带有重复的“id”列,我已经测试了此解决方案。
为了演示如何帮助实施工作解决方案,我使用的是PHP,如果它与您无关并且使用您的首选语言进行编码,则可以忽略它。
的SQL输出可以被用来作为
$cartid = $result['cartid'];
$customerid = $result['customerId'];
与变量$ cartid,$客户ID和其他任何指定的是在你的PHP使用avaliable,例如
<? echo $customerid.', your are currently using '.$cartid.', please make sure this is correct'; ?>
为了帮助你定义你的变量,你可以做类似的事情
print_r($result);
这将显示一个像
Array ([id] => 1 [user_id] => 2 [shop_name] => My Shop)
阵列要创建变量只需定义$结果作为数组ID喜欢
$id = $result['id'];
$customerid = $result['user_id'];
$shopname = $result['shop_name'];
依此类推,直到你需要定义是所有变量。
这是你在找什么?您可能需要调整查询字符串,因为这是来自上次大约两年前沿着这些行做的事情的内存。
我希望它有帮助。
注意:它开始误导我,所以我从服务器上拉出了旧代码,我已经编辑了这篇文章以纠正之前使用的语法,我发布的以前的方法不受PHP支持,但是此替代方法期望的结果,对原始查询进行最小的更改:)
通常,在select子句中使用*是一个混乱的做法,应该避免。解决方案是使用明确的列引用和明确的别名。 – symcbean 2011-06-09 11:37:34
MySQL没有“对象”。你打算如何达到这个产出? – 2011-06-09 14:01:36