如果我需要这样的查询,我会使用类似于
的查询
$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 查询中的任何重复的列名(例如“id”)创建一个别名,例如
users.id AS user_id
这允许我们重新定义 users.id,以便在我们创建变量时它可以在我们的页面中用作 user_id。使用我当前的网络应用程序,我确实有 2 个表,其中包含重复的“id”列,我已经在这些表上测试过这个解决方案。
出于演示的目的,以帮助实现我正在使用 PHP 的工作解决方案,如果它与您无关,您可以忽略它并用您喜欢的语言编写代码。
然后可以将 SQL 输出用作
$cartid = $result['cartid'];
$customerid = $result['customerId'];
使用变量 $cartid、$customerid 和任何其他指定可在您的 PHP 中使用的变量,例如
<? 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)
要创建变量,只需将 $result 定义为数组 ID,如
$id = $result['id'];
$customerid = $result['user_id'];
$shopname = $result['shop_name'];
以此类推,直到您需要定义的所有变量都是。
这就是你要找的吗?您可能需要调整查询字符串,因为这是大约 2 年前我最后一次按照这些思路做的事情的记忆。
我希望它有所帮助。
注意:它开始困扰我,所以我从服务器中提取了旧代码,我已经编辑了这篇文章以更正我之前使用的语法,PHP 不支持我之前发布的方法但是这个替代方案给出了对原始查询的更改最小的期望结果:)