我想从数据库中创建记录并将它们设置为之前采用的特定类别。我有这个类和方法:
<?php
class CategoryForum{
private $dbHandler;
public function __construct($db){
$this->dbHandler = $db;
}
public function getCategories(){
$rowCategory = $this->dbHandler->prepare("SELECT * FROM `category`");
if($rowCategory->execute() == false){
print_r($rowCategory->errorInfo());
return false;
}else{
return $rowCategory->fetchAll(PDO::FETCH_ASSOC);
}
return true;
}
public function getForum(){
$rowForum = $this->dbHandler->prepare("SELECT `subject`, category.id FROM category, forum WHERE category.id = forum.id_category");
if($rowForum->execute() == false){
print_r($rowForum->errorInfo());
return false;
}else{
return $rowForum->fetchAll(PDO::FETCH_ASSOC);
}
return true;
}
}
我是在这样的基础上写的: https://pl.wikibooks.org/wiki/PHP/Relacje_i_indeksy
当我执行 getForum 方法中包含的此查询时,我的眼睛将会在此列表中被释放(因为我正在考虑此问题):
屏幕:
如何建立两个表之间的关系?你能救我吗?
答案 0 :(得分:0)
您可以使用INNER JOIN
。
SELECT *
FROM `category`
INNER JOIN `forum`
ON `category`.`id` = `forum`.`id_category`
如果您只想从两个表中选择特定记录:
SELECT `category`.`id`,
`category`.`foo`,
`forum`.`bar`
FROM `category`
INNER JOIN `forum`
ON `category`.`id` = `forum`.`id_category`
如果您在论坛中拥有ID主键,则可能会出现id
不明确的错误,在这种情况下,您只需给category.id一个别名。
SELECT `category`.`id` AS categoryID,
...