所以我有一个“文章”表,其外键为“category_id”。
文章
| id | title | pub_date | category_id |
-----------------------------------
| 0 | abc | 23423443 | 1 |
| 1 | def | 23423423 | 2 |
| 2 | ghi | 24234234 | 1 |
| 3 | jkl | 23423424 | 3 |
| 4 | mop | 23432435 | 2 |
分类
| id | title |
----------------
| 1 | News |
| 2 | Feature |
| 3 | Review |
我有一个类别的标题。
我想在一个查询中确定所述类别的ID,并使用它来返回category_id = id和发布日期小于当前日期时间的文章。
这可能吗?
我正在使用Postgres,但我从学术角度看这个问题,所以任何SQL方言的答案都会很好,因为我很乐意为教育做自己的翻译。
答案 0 :(得分:1)
select *
from Articles
where pub_date <= now() and
category_id = (select id from Categories where title="TITLE")
答案 1 :(得分:1)
这是你之后的事吗?我不知道这是不是PostgresSQL。
select A.id, A.title, A.pub_date, C.id, C.title
from Articles A join Categories C on A.category_id=C.id
where C.title = MY_CATEGORY_TITLE and
a.pub_date < CURRENT_DATE_TIME
我忽略了对索引,订单等的需求。
答案 2 :(得分:0)
它只是一个简单的连接 尝试
SELECT A.id,A.title,A.pub_date,A.category_id,
C.title
FROM Articles A
INNER JOIN Categories C
ON A.category_id = C.id
WHERE pub_date < NOW()
AND C.title = "your title"