一个长期存在的功能请求没有得到jOOQ社区的喜爱,尽管很多人可能想要它。它的标题是: 让 Table<R>
延伸到 SelectField<R>
: github.com/jOOQ/jOOQ/i…
这个功能的具体含义是什么?
厉害的PostgreSQL
让我们来看看PostgreSQL的一个非常酷的功能。在PostgreSQL中,可以通过各种方式嵌套记录,包括在SELECT子句中简单地引用(非限定的)表名。使用sakila数据库,这就是有效的PostgreSQL:
SELECT DISTINCT actor, category FROM actor JOIN film_actor USING (actor_id) JOIN film_category USING (film_id) JOIN category USING (category_id) 复制代码
这列出了所有的演员和他们所演的电影类别。这实际上只有一个意思,对吗?看起来好像是这个的语法糖,在所有的数据库产品上都有效:
SELECT DISTINCT actor.*, category.* FROM actor JOIN film_actor USING (actor_id) JOIN film_category USING (film_id) JOIN category USING (category_id) 复制代码
但它有微妙的不同。结果看起来像这样,在psql中: