我有一个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_artistnode.js服务使用了restify和pg-query (尽管我已经用底层的"pg“模块测试过了,结果也是一样的)。
查看查询的输出,我找不到在节点内部运行查询时遗漏的行之间的任何相似之处(我认为可能是列中的空值,或者是非常大量的列数据、特殊字符等)。
发布于 2013-12-06 22:13:16
伊尔兹错误的方向是正确的。
事实证明,节点代码指向数据库的最新副本,相似到不明显它是一个单独的数据库,但足够过时,行数不同。
直到我注意到psql和node应用程序返回的一行中的一个小差异,我才意识到原因。
Occams Razor FTW!:)
https://stackoverflow.com/questions/20379175
复制相似问题