我正在尝试为Tableau内部的左外部联接实现$ lookup查询的SQL语法,但是它永远无法工作。我之所以尝试这种方法,是因为“ LEFT OUTER JOIN”花费大量时间(小时)来处理信息,因为我的收藏以GB为单位。
我每次都从Tableau SQL中不断收到的错误在这里:
与MongoDB BI连接器通信时发生错误。
连接不良:Tableau无法连接到数据源。 [MySQL] [ODBC 8.0(w)驱动程序] [mysqld-5.7.12 mongosqld v2.7.0] parse sql'SELECT * 来自( SELECT *,video_docs 从视频 在哪里video_docs输入(选择* 来自video_authors WHERE author_name = videos.author); )自定义SQL查询 LIMIT 0'错误:位置147的语法错误
根据文档,BI连接器工作正常,但仍然告诉我这是解析错误。
相当于Mongo shell的我的SQL查询
Mongo Shell查询,它非常完美!
db.videos.aggregate([
{
$lookup:
{
from: "video_authors",
localField: "author",
foreignField: "author_name",
as: "video_docs"
}
}
])
SQL查询,永远无法工作
SELECT *, video_docs
FROM videos
WHERE video_docs IN (SELECT *
FROM video_authors
WHERE author_name= videos.author);
我正在跟踪Mongodb的此参考。 https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#perform-a-single-equality-join-with-lookup
任何帮助将不胜感激!
此致
Adnan