可以将查询作为一个数组,其中检查多个表的所需值吗?

时间:2012-10-15 13:53:10

标签: php mysql

我可以在MYSQL中编写一个查询(最终用于PHP + MySQL),这样我就可以在一个数组中检查多个表吗?

例如 假设我有客户汽车费率表 每个表都有一个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";

这是正确的语法吗?

2 个答案:

答案 0 :(得分:1)

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

You may also implement an iterative solution in PHP to return from several tables或考虑使用存储过程在数据库端执行此操作。

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

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';

相关:link

答案 1 :(得分: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连接的优先方法,以获得准确和美观的结果。