我可以在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";
这是正确的语法吗?
答案 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连接的优先方法,以获得准确和美观的结果。