0

我可以在 MYSQL(最终是 PHP + MySQL)中编写一个查询,以便我可以检查一个数组中的多个表吗?

例如 假设我有表client car rate 每个表都有一个 ID。

客户中是行... ID、姓名、地址 在汽车中是行... ID、品牌、型号、年份、车牌号 在比率中是行... ID、1 天、2 天、3 天

以下工作吗?:

SELECT name, make, model, license plate number, 1-day FROM client, car, rate WHERE make = ford

或在 PHP 中

$q = "SELECT name, make, model, license plate number, 1-day FROM client, car, rate WHERE make = ford";

这是正确的语法吗?

4

2 回答 2

1

不,你不能。不是你在这里展示它的方式。如果表彼此相关,您可以做的是 JOINS。否则,您可能不得不同时从一张桌子中进行选择。

您还可以在 PHP 中实现一个迭代解决方案以从多个表返回,或者考虑使用存储过程在数据库端执行此操作。

通常在使用关系数据库时,表之间存在关系,因此您可以对它们执行连接操作(一个非常松散的示例,因为我对您正在工作的上下文一无所知):

SELECT c.name, c.make, c.model, c.licensePlateNumber FROM car AS c JOIN client AS cl ON c.ClientId = cl.ClientId JOIN rate AS r ON cl.RateId = r.RateId WHERE c.make = 'Ford';

相关:链接

于 2012-10-15T13:54:26.547 回答
1

是的,您可以将您的表名作为数组和 id 发送给您的查询函数,然后执行如下所示

function multiple_table_query($tbl_ary,$id)
{
      foreach($tbl_ary as $tbl)
{
    $sql="SELECT * FROM $tbl where id=$id"
    $result[]=mysql_fetch_array($sql)
}
}
 return $result;

但这不是更好的 sql 连接以获得准确和美观的结果的首选方法。

于 2012-10-15T14:46:19.533 回答