gpt4 book ai didi

mysql - 避免相关子查询的麻烦

转载 作者:行者123 更新时间:2023-11-29 06:51:38 24 4
gpt4 key购买 nike

我试图避免在我的 SQL 中使用相关子查询,但我似乎不知道该怎么做。这是我当前的 PostgreSQL 语句:

INSERT INTO book_collection (publisher, p_key, collection_name, page_number) 
(SELECT publisher,
p_key,
source,
pages
FROM db_publication_new AS d
WHERE d.type =
'book_collection'
AND (SELECT type
FROM db_publication_new
WHERE dblp_key = d.crossref)
= 'book');

基本上我有一个名为 db_publication_new 的表,它包含各种类型的出版物,其中两个名为 book_collectionbook。每个 publication,无论类型如何,都有一个名为 crossref 的列,其中包含一个 p_key。此 p_key 本身引用同一数据库中的另一个 publication

我想获取此表中所有具有book 类型的crossrefbook_collection 出版物。我如何有效地做到这一点?

我只能写出上面的低效语句,而且由于我表中的记录数量,它需要很长时间才能完成。如何使语句不包含相关子查询?

最佳答案

试试这个

INSERT INTO book_collection (publisher, p_key, collection_name, page_number) 
VALUES
(SELECT d1.publisher,
d1.p_key,
d1.source,
d1.pages
FROM db_publication_new AS d1, db_publication_new AS d2
WHERE d1.type = 'book_collection'
AND d2.dblp_key = d1.crossref
AND d2.type = 'book');

关于mysql - 避免相关子查询的麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15024473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com