Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何从外键等于查询结果的数据库中获取所有行?_Mysql_Database_Postgresql_Sequelize.js - Fatal编程技术网

Mysql 如何从外键等于查询结果的数据库中获取所有行?

Mysql 如何从外键等于查询结果的数据库中获取所有行?,mysql,database,postgresql,sequelize.js,Mysql,Database,Postgresql,Sequelize.js,所以我有一个“Articles”表,它的外键是“category_id” 文章 | id | title | pub_date | category_id | ----------------------------------- | 0 | abc | 23423443 | 1 | | 1 | def | 23423423 | 2 | | 2 | ghi | 24234234 | 1 | | 3 | jkl |

所以我有一个“Articles”表,它的外键是“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,并使用它返回类别id=id和发布日期小于当前日期时间的文章

这可能吗

我使用的是博士后,但我是从学术角度来看这一点的,所以任何SQL方言的答案都可以,因为我很高兴自己为教育做翻译

选择*
select * 
    from Articles
  where pub_date <= now() and 
        category_id = (select id from Categories where title="TITLE")
从文章 其中发布日期
选择*
从文章
这里的pub_date只是一个简单的连接
试一试

选择A.id、A.title、A.pub\u date、A.category\u id、,
C.头衔
从A条
内连接类别C
关于A.category_id=C.id
其中pub_date
这只是一个简单的连接 试一试

选择A.id、A.title、A.pub\u date、A.category\u id、,
C.头衔
从A条
内连接类别C
关于A.category_id=C.id
其中pub_date
这就是你想要的东西吗?我不知道这是不是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
选择A.id、A.title、A.pub\u日期、C.id、C.title
从文章A在A.category_id=C.id上连接类别C
其中C.title=我的类别和
a、 发布日期<当前日期\时间

我忽略了对索引、订单等的需求。

这就是你想要的东西吗?我不知道这是不是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
选择A.id、A.title、A.pub\u日期、C.id、C.title
从文章A在A.category_id=C.id上连接类别C
其中C.title=我的类别和
a、 发布日期<当前日期\时间

我忽略了对索引、订单等的需求。

这非常有效,Tin Tran刚刚第一个到达那里。谢谢,没问题。如果您还没有,那么关于不同类型的联接(内部联接、外部联接、左侧联接和右侧联接)可能值得一读。我很草率,没有指定(假设默认为内部)。Tin Tran也使用了Internal,我想这是你在这里需要的,但是了解其他种类也很有用。我以前也研究过它们,但现在我可以看到我有很多东西要学。只是想办法解决所有可能的连接变体的问题本身就有点像大脑游戏。也许值得我克隆我的DB并和其中一些人一起玩一玩。再次感谢。这非常有效,Tin Tran刚刚第一个到达那里。谢谢,没问题。如果您还没有,那么关于不同类型的联接(内部联接、外部联接、左侧联接和右侧联接)可能值得一读。我很草率,没有指定(假设默认为内部)。Tin Tran也使用了Internal,我想这是你在这里需要的,但是了解其他种类也很有用。我以前也研究过它们,但现在我可以看到我有很多东西要学。只是想办法解决所有可能的连接变体的问题本身就有点像大脑游戏。也许值得我克隆我的DB并和其中一些人一起玩一玩。再次感谢。这帮了我很大的忙,我最终选择了加入路线而不是子查询,但是谢谢你的回答。好的。我认为@BobSalmon answer在连接变量中更好,因为where子句
title=CATEGORY title
可以减少临时表,因此执行时间无论子查询(如本答案中所示)还是连接更好,答案都是:它取决于()。这个答案有点陈旧,但我认为仍然相关。知道如何做到两者都是值得的,这样你就可以在你的情况下使用最有效的方法(可能会有所不同)。@BobSalmoni我不会比较你和我的答案。我用join写了两个答案:)这很有帮助,我最终选择了join路线而不是子查询,但谢谢你的回答。好的。我认为@BobSalmon answer在连接变量中更好,因为where子句
title=CATEGORY title
可以减少临时表,因此执行时间无论子查询(如本答案中所示)还是连接更好,答案都是:它取决于()。这个答案有点陈旧,但我认为仍然相关。知道如何做到两者都是值得的,这样你就可以在你的情况下使用最有效的方法(可能会有所不同)。@BobSalmoni我不会比较你和我的答案。我用join写了两个答案:)我为特定类别标题添加了额外的WHERE子句,但这帮助我得到了我需要的答案谢谢。在那里,我更新了我的查询以显示您正在寻找特定类别标题的事实。我想我没有听到你在问题中提到这一点。但是yeahI为特定类别标题添加了额外的WHERE子句,但这帮助我得到了我需要的答案谢谢。在那里,我更新了我的查询,以显示您正在寻找特定类别标题的事实。我想我没有听到你在问题中提到这一点。但是是的