我有一个数据库,我希望从两个表中获取数据,它们看起来像这样:

categories:    entries:
+----+------+  +----+-------------+-------+-------------+
| id | name |  | ID | category_id | title | description |
+----+------+  +----+-------------+-------+-------------+
|  1 |  foo |  |  1 |      1      |  bar  | Loreum ip.. |
+----+------+  +----+-------------+-------+-------------+


我想从entries获取信息,我的输入将只是类别名称和条目标题。如果我使用两个语句,它显然可以工作。就像是:

SELECT `id` FROM `categories` WHERE `name` = 'foo' LIMIT 1;
SELECT `ID`, `category_id`, `title`, `description` FROM `entries` WHERE `title` = 'bar' AND `category_id` = $cat_id LIMIT 1;


其中$cat_id是第一个条目的输出。但是我想将这些合并为一个语句,在这里我发现join有用吗?所以我的问题基本上是如何将这些组合成一个查询?

最佳答案

你可以像我建议的那样使用连接概念

SELECT `ID`, `category_id`, `title`, `description` FROM `entries`
inner join  `categories` on `entries`.`category_id`=`categories`.`id`
WHERE `categories`.`name` = 'foo' AND `title` = 'bar'  LIMIT 1;


您看起来很新,请探索有关sql的概念

08-27 22:55
查看更多