[英]How can I make a subselection in my query?
Like this my query is working fine:像这样我的查询工作正常:
$pdo = $db->prepare('SELECT *
FROM projects WHERE project_id = :project_id ');
$pdo->execute(array('project_id' => $project_id));
while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) {
echo "ok";
}
But when I add a subselection then I get a blank page:但是当我添加一个子选择时,我会得到一个空白页面:
$pdo = $db->prepare('SELECT *
(SELECT * FROM animals WHERE projects.animal=animals.id) AS animal
FROM projects WHERE project_id = :project_id ');
$pdo->execute(array('project_id' => $project_id));
while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) {
echo "ok";
}
What did I do wrong?我做错了什么?
You can use INNER JOIN to have both tables.您可以使用 INNER JOIN 来拥有两个表。
$pdo = $db->prepare('SELECT *
FROM projects
INNER JOIN animals ON projects.animal=animals.id
WHERE project_id = :project_id ');
$pdo->execute(array('project_id' => $project_id));
while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) {
echo "ok";
}
Try this query beacuse this query will return all the projects that have an animal associated in table animals.尝试此查询,因为此查询将返回在表动物中关联动物的所有项目。
I think is this that you want我想这是你想要的
Found this solution:找到了这个解决方案:
$pdo = $db->prepare('SELECT *
FROM projects
LEFT JOIN animals ON projects.animal=animals.id
WHERE project_id = :project_id ');
$pdo->execute(array('project_id' => $project_id));
while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) {
echo "ok";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.