我有2张桌子:
任务:
id title description client_id
客户:
id name phone email url
当我在PHP应用程序中单击任务时,我会打开一个新页面,在该页面中还将发送单击的任务的ID。
要从我的表中获取信息,请执行以下操作:
$task_id = null;
if (! empty ( $_GET ['task_id'] )) {
$task_id = $_GET ['task_id'];
}
if ($task_id == null) {
die("This page can only be accessed by selecting a task");
}
$sql = "SELECT * FROM task WHERE id=:id";
$query = $db->prepare ( $sql );
$query->bindParam ( ":id", $task_id );
$query->execute ();
$task = $query->fetch ();
$client_id = $task ["client_id"];
$sql = "SELECT * FROM clients WHERE id=:client_id";
$query = $db->prepare ( $sql );
$query->bindParam ( ":client_id", $client_id );
$query->execute ();
$client = $query->fetch ();
因此,我的问题是,我可以使用一个SELECT代替当前的两个吗?
当然可以,通过连接两个表。查询如下所示:
SELECT *
FROM task
LEFT JOIN clients
ON task.client_id=clients.id
WHERE task.id=:id
或在您的PHP中:
$sql = "SELECT * FROM task LEFT JOIN clients ON task.client_id=clients.id WHERE task.id=:id";
$query = $db->prepare ( $sql );
$query->bindParam ( ":id", $task_id );
$query->execute ();
$task = $query->fetch ();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句