我想形成一个 sql 查询,它返回一些行的数据,这些数据在某个组中具有最大值。考虑以下演示示例:
共有三个表:国家、出版商和书籍。每个出版商属于一个国家,每本书都有一个出版商。定义可能看起来像
Country(country_id, country_name)
Publisher(pub_id, pub_name, fk_pub_country)
Book(book_id, book_name, release_date, fk_book_publisher)
Run Code Online (Sandbox Code Playgroud)
我想选择按国家/地区分组的 (country_id, book_name),以便每一行都包含该国家/地区最近发行的书籍的名称。如果同一天发布多本书,我应该拿到id最高的那一本。
如果我只使用 group by -clause 和 max,则不能包含书名。如果我选择视图 (country_id, max_date) 并将其与出版商和书籍连接,我可能会收到每个国家/地区的多行。我怎样才能达到预期的结果?
如何在 Node.js 中验证格式良好的 xml?我主要感兴趣的是仅检查文件是否格式正确。另外,我想收到发生错误的行号。
我有以下测试 xml:
<?xml version="1.0" encoding="UTF-8" ?>
<body>
<tagname>
test1
</tag.name> <--- error here
<tagname>
test2
</tagname>
</body>
Run Code Online (Sandbox Code Playgroud)
到目前为止我已经尝试过:
xmldom:
var parser = new DOMParser({errorHandler: (level, error) => {
console.log (level, error);
}});
var dom = parser.parseFromString(content, 'application/xml');
Run Code Online (Sandbox Code Playgroud)
问题:没有任何错误提示。错误处理程序永远不会被调用,并且 dom 包含“test1”但不包含“test2”。所以解析器只是停止并吞掉错误。
libxmljs:
var xmlDoc = libxmljs.parseXml(xml);
Run Code Online (Sandbox Code Playgroud)
问题:抛出无用的异常“标记体内数据过早结束”。