我有一个SQL查询,在本机Postgresql客户端(psql,Navicat等)中运行时返回356行,但在我正在开发的node.js服务中运行时只返回214行。这是查询:
SELECT discs.id AS id,
discs.is_streamable AS is_streamable,
discs.updated_at AS updated_at,
albums.title AS album_title,
'https://www.slurpie.com/albums/' || albums.slug AS album_url,
artists.name AS main_artist,
genres.name AS genre,
albums.cover_remote_url AS album_art
FROM discs
JOIN albums
ON albums.id = discs.album_id
JOIN artists
ON artists.id = albums.main_artist_id
JOIN genres
ON genres.id = albums.genre_id
JOIN users
ON users.id = discs.user_id
WHERE users.authentication_token = 'itsasecret'
ORDER BY main_artist
node.js服务正在使用restify和pg-query(尽管我已经使用底层的“pg”模块对其进行了测试,但结果相同)。
查看查询的输出,我发现查询在节点内部运行时遗漏的行之间没有任何相似之处(我认为列中的空值可能是非常大的,或者是非常大量的列数据,特殊字符等。)。
答案 0 :(得分:1)
Yieldsfalsehood走上正轨。
事实证明,节点代码指向数据库的最新副本,类似得足以使它不是一个单独的数据库,但是过时的行数不同。< / p>
直到我注意到psql和节点应用程序返回的其中一行之间的差异很小,原因是我跳出来了。
Occams Razor FTW! :)