我有一个如下表
使用WITH RECURSIVE语句我能够获得表的深度
WITH RECURSIVE category_tree(id, name, depth) AS (
SELECT id, name, ARRAY[id]
FROM category
WHERE parentid IS NULL
UNION ALL
SELECT category.id, category.name, depth || category.id
FROM category_tree
JOIN category ON category.parentid=category_tree.id
WHERE NOT category.id = ANY(depth)
)
SELECT * FROM category_tree ORDER BY id;
Run Code Online (Sandbox Code Playgroud)
我应该如何更改查询才能获得如下输出(直到树的第 n 层)?
我打算使用上面的结果生成如下所示的站点地图:
我目前正在尝试将 LEFT OUTER JOIN 与 WITH RECURSIVE 语句一起使用,但我无法找到如何操作?有人可以指导一下吗?
我目前正在使用Apache commons配置库来编写和读取文件中的数据.我能够将键值对colors = hello保存到user..properties文件中,但是当我尝试读取该值时,获取以下异常.
Exception in thread "main" java.lang.IllegalArgumentException: 'hello' does not contain an equals sign
at org.apache.commons.configuration.AbstractConfiguration.getProperties(AbstractConfiguration.java:625)
at org.apache.commons.configuration.AbstractConfiguration.getProperties(AbstractConfiguration.java:579)
at com.code.prep.CommonsMain.readProperties(CommonsMain.java:21)
at com.code.prep.CommonsMain.main(CommonsMain.java:12)
Run Code Online (Sandbox Code Playgroud)
代码如下
package com.code.prep;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
public class CommonsMain {
public static void main(String[] args) {
CommonsMain main = new CommonsMain();
main.readProperties();
// main.writeProperties();
}
public void readProperties(){
PropertiesConfiguration config = new PropertiesConfiguration();
try {
config.load("user.properties");
System.out.println(config.getProperties("colors"));
} catch (ConfigurationException e) {
e.printStackTrace();
}
}
public void writeProperties(){
PropertiesConfiguration config = new PropertiesConfiguration();
try { …Run Code Online (Sandbox Code Playgroud)