Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Sql 我想不出我的问题出在哪里_Sql_Postgresql_Join - Fatal编程技术网

Sql 我想不出我的问题出在哪里

Sql 我想不出我的问题出在哪里,sql,postgresql,join,Sql,Postgresql,Join,我想根据图书元关键字查找基于已购买图书的类似图书,但下面的查询将返回用户已经购买的图书。我需要带一些没有买过的书,但根据他的购买情况,这些书是相似的。希望这是清楚的 下面是查询、数据和结果的链接。 查询不应返回此以下查询返回的数据。但它也返回了一些下面的数据 SELECT c.book FROM customers_books c WHERE c.customer = 1 如果这两个查询的形式相同,您可以简单地将它们排除在外 有关更多信息,请参见此: 请尝试下面的查询,好吗? 我已将左联接添

我想根据图书元关键字查找基于已购买图书的类似图书,但下面的查询将返回用户已经购买的图书。我需要带一些没有买过的书,但根据他的购买情况,这些书是相似的。希望这是清楚的

下面是查询、数据和结果的链接。

查询不应返回此以下查询返回的数据。但它也返回了一些下面的数据

SELECT c.book FROM customers_books c WHERE c.customer = 1

如果这两个查询的形式相同,您可以简单地将它们排除在外

有关更多信息,请参见此:

请尝试下面的查询,好吗? 我已将左联接添加到现有查询中,以删除已购买的书籍

SELECT bmk2.book
FROM book_meta_keywords bmk2
INNER JOIN book_meta_keywords bmk1 
                ON  bmk2.meta_keyword = bmk1.meta_keyword
INNER JOIN customers_books cb 
                ON bmk1.book = cb.book
INNER JOIN books b ON b.id = bmk2.book
LEFT JOIN customers_books cbp ON cbp.book = b.id 
                    and cbp.customer = 1
WHERE cb.customer = 1 AND b.status = 'PUBLISHED'
and cbp.book IS NULL
GROUP BY bmk2.book
ORDER BY MAX(b.modified_date) DESC ;

Postgres不支持减号-只支持除运算符之外的标准。这个问题与这个问题有什么不同:你在哪里接受了答案?我知道,我在获得更多数据后发现它不起作用。那么你应该编辑原始问题。这只是那个的复制品。