postgresql - 将一组选定的子表加入一个父表
问题描述
我有 4 个 postgres 表:
- 具有 1 到 5 的属性新鲜度 (int) 和序列号 pk 的水果
- 香蕉的曲率 (int) 从 0 到 360,序列号 pk 既是水果的外键,又是香蕉的主键
- Apple 以颜色作为文本和相同的 fk pk id
- 重量为 int 且 fk id 与其他两个相同的菠萝
这是一个水果的例子(你可以想象其他的,它们非常相似):
CREATE TABLE apple
(
color text,
id int primary key references fruit(id)
)
现在想查询所有香蕉和苹果的新鲜度、曲率和颜色。
这是我尝试过的:
select * from fruit
natural full join apple
natural full join banana;
不幸的是,它还返回了所有的菠萝(底部 2)。但是,如果我进行常规连接,它根本不会返回任何内容(因为两个连接都过滤掉了彼此的行)。
那么如何在一个查询中只返回没有菠萝的苹果和香蕉呢?
解决方案
推荐阅读
- jquery - 如何使用选择删除自定义样式
- python - wxPython WebView:如何重新加载错误?
- apache-kafka-streams - 使用 STATE_CLEANUP_DELAY_MS_CONFIG
- karate - 空手道 -Gatling:无法更新模拟类名称
- c# - 如何将 ObservableCollection 绑定到 XAML 中的 IList 属性?
- spring - SQL 错误:23503,SQLState:23503 在 SpringBoot 2.1.4.RELEASE 应用程序中
- scala - 如何在需要具体类型的情况下使用具有存在类型的变量?
- php - 登录主页后如何解决akeneo仍然加载?
- ruby-on-rails - 在 Rails 中使用嵌套表单时出错
- javascript - 模块/类中的 OnClick 功能不起作用