你好我正在尝试为我正在创建的书评系统链接两个数据库
例如我有一个书籍表,我还有另一个流派表。
书籍表将存储所有不同的书籍,并且将使用genre_id键或其他内容具有其所属类型的外键。
当我对类型进行查询时,我希望它能够显示该类型的书籍数量,例如幻想类型中的2本书。
为此我需要一个记录栏?但是,当添加或删除新记录时,如何自动递增/删除?
编辑:
哇谢谢你们所有的帮助,所以我知道我不需要一个单独的记录表,但是我想要它可以用这个function all_get() {
$this->load->database();
$sql = 'SELECT * FROM books;';
$query = $this->db->query($sql);
$data = $query->result();
$this->response($data, 200);
}
我如何查询以显示每个类型的记录,而不是单独显示所有单独的书籍?
答案 0 :(得分:0)
您不需要记录列。您可以查询与每种类型相关的书籍数量:
SELECT count(*) FROM Book WHERE genre_id = :genreId;
在你开始之前BTW可能会重新考虑你的实体关系。是Genre< - >预订真的1:n?
答案 1 :(得分:0)
在显示每种类型的书籍数量以及该类型的名称时,我认为你正在寻找这样的东西:
SELECT g.genreName, count(*) from books b
JOIN genres g on g.ID = b.genreID
GROUP BY g.genreName
SQL小提琴:http://sqlfiddle.com/#!2/a3c45e/2
正如其他人已经评论过的那样,您不需要单独的记录表,但是如果您仍然需要自动递增主键的帮助,这里是W3 schools中最基本的示例:
CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)