Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在一个查询中选择with JOIN and condition和with with JOIN

在一个查询中选择with JOIN and condition和with with JOIN
EN

Stack Overflow用户
提问于 2019-08-22 05:22:29
回答 2查看 64关注 0票数 0

在PostgreSQL中,我有两个表:

company id名称

owner company_id已验证

在没有关联company的情况下,没有owner记录出现在数据库中。

但是我们有company记录,在没有owner的DB中呈现。

如何一次查询选择所有只有验证所有者的公司和没有验证所有者的公司?

我已经尝试了许多查询,但没有人在工作:(

例如,以下查询不起作用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select count(c.id) 
from company as c 
  left outer join owner o on c.id = o.company_id and o.verified is not null 
where not (c.id = o.company_id and o.verified is null);

示例模式

http://sqlfiddle.com/#!17/ab366

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table company (
  id int unique,
  name varchar(255)
);

create table owner (
  first_name varchar(255),
  company_id int unique references company(id) on update cascade on delete set null,
  verified boolean
);

insert into company values (1, 'company1');
insert into company values (2, 'company2');
insert into company values (3, 'company3');

insert into owner values ('owner1', 1, true);
insert into owner values ('owner2', 2, false);

我需要选择company1company3

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-22 05:26:14

在这里,我将实际使用从company表到owner表的左连接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT c.*
FROM company c
LEFT JOIN owner o
    ON c.id = o.company_id
WHERE
    o.company_id IS NULL OR    -- companies without owners
    o.verified IS NOT NULL;    -- companies with verified owners
票数 4
EN

Stack Overflow用户

发布于 2019-08-22 12:11:29

我将在where子句中使用过滤:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select c.*
from companies c
where not exists (select 1
                  from owners o
                  where o.company_id = c.id and
                        not o.verified
                 );

这样做的主要原因是,如果有多个经过验证的所有者,left join版本可能会返回重复项。

第二个原因是这更紧密地捕捉到了您所描述的逻辑。。。你想要没有未经验证的所有者的公司。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57602510

复制
相关文章
【头条】如何隐藏页面中的某个元素
透明度为0,仍在文档流中,当作用于其上的事件(如点击)无效,这也是 visibility:hidden 与 opacity: 0 的区别
山月
2021/04/07
3.2K0
【头条】如何隐藏页面中的某个元素
元素的显示与隐藏
在CSS中有三个显示和隐藏的单词比较常见,我们要区分开,他们分别是 display visibility 和 overflow。
星辰_大海
2020/09/30
4.4K0
用 CSS 隐藏页面元素
用 CSS 隐藏页面元素有许多种方法。你可以将 opacity 设为 0、将 visibility 设为 hidden、将 display 设为 none 或者将 position 设为 absolute 然后将位置设到不可见区域。
全栈程序员站长
2022/08/09
1.6K0
​隐藏404页面中nginx版本信息
兮动人
2023/09/03
8000
demo2动态加载显示商品详情页
/* 要求:实现 头像+昵称(多余7位用...)           商品图片(根据商品实际的图片的大小进行动态的展示。按照一定的比例进行展示。)           产品简介。产品简介在商品图片的下边。并跟随商品图片的大小进行动态的收缩或者是展示。 考虑:实现功能之后,是否要做占位图 进行图片的占位??! */ 难点:动态的加载。 实现:首先创建ui 然后请求数据 最后在主线程进行赋值 并且刷新ui 即可实现。 // // ACShowDetailVC.m // demo2详情动态加载展开
用户1219438
2018/02/01
7170
demo2动态加载显示商品详情页
JQuery 隐藏和显示html元素
$(function(){ $("#bubmitBtn").click(function(){ //首先需要把提示标签全部隐藏掉 $("#nameInvalid").hide(); $("#emailInvalid").hide(); $("#pwdInvalid1").hide(); $("#pwdInvalid2").hide(); //检查用户名: 长度为6到12位, 只能输入数字和英文和下划线 //alert("--"); var $nameEle = $("#UcenterMember_account"); var reg = /^\w{6,12}$/; if(!reg.test($nameEle.val())) { $("#nameInvalid").text(" *用户名长度为6到12位, 只能输入数字和英文和下划线"); $("#nameInvalid").show(); //alert("用户名长度为6到12位, 只能输入数字和英文和下划线"); $nameEle[0].focus(); return false; } //邮箱格式必须正确, 可以不输入 var $emailEle = $("#UcenterMember_email"); reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if($emailEle.val()!="" && !reg.test($emailEle.val())) { $emailEle[0].focus(); $("#emailInvalid").text(" *邮箱格式不正确!"); $("#emailInvalid").show(); //alert("邮箱格式不正确!"); return false; } //检查密码: 长度为6位, 只能输入数字和英文 var $passwordEle = $("#UcenterMember_password1"); reg = /^[a-zA-Z0-9]{6,15}$/; if(!reg.test($passwordEle.val())) { $("#pwdInvalid1").text(" *密码的最低长度为6位, 只能输入数字和英文"); $("#pwdInvalid1").show(); //alert("密码的长度为6位, 只能输入数字和英文"); $passwordEle[0].focus(); return false; } //确认密码必须与密码相同 var $password2Ele= $("#UcenterMember_password2"); if($password2Ele.val()!=$passwordEle.val()) { $password2Ele[0].focus(); $("#pwdInvalid2").text(" *确认密码必须与密码相同"); $("#pwdInvalid2").show(); //alert("确认密码必须与密码相同"); } return true; }); });
wust小吴
2019/07/05
9.3K0
CSS篇(005)-在页面上隐藏元素的方法有哪些?
-(1)使用 display:none;隐藏元素,渲染树不会包含该渲染对象,因此该元素不会在页面中占据位置,也不会响应绑定的监听事件。
齐丶先丶森
2022/05/12
6220
【黄啊码】微信小程序页面加载闪烁问题|wx:if=““导致先显示后隐藏的闪烁问题
先用一个变量让其隐藏,当从接口中获得数据的时候,在把这个 show 设置成 true 。这样出来的效果就是,内容逐渐在显示,依次显示。从而看不到闪烁再隐藏。 代码如下:
黄啊码
2022/01/09
1.4K0
【CSS】元素显示与隐藏 ( display 隐藏对象 | visibility 隐藏对象 | overflow 隐藏对象 )
设置 display: block 可以显示元素 , 同时该样式还可以将元素转为块元素 ;
韩曙亮
2023/04/16
5.5K0
【CSS】元素显示与隐藏 ( display 隐藏对象 | visibility 隐藏对象 | overflow 隐藏对象 )
iframe页面点击页面其它地方隐藏某元素
<a href="javascript:;" id="showOrHide"></a> <!-- 注意此处的$()不是jquery 是document.getElementById()封装为方法 --> <div id="show-or-hide"> <a href="javascript:$('show-or-hide').style.display='none';parent.location.href='/auth/login'">切换账号</a> <a style="font-size: 12
李磊
2019/08/10
2K0
Rn页面滚动显示隐藏head动画
明知山
2023/10/03
2360
Rn页面滚动显示隐藏head动画
分享 8 种在 CSS 中隐藏元素的方法
作为 Web 开发人员,我们经常遇到需要隐藏网页上的元素的情况。在本文中,我们将分享8 种在 CSS 中隐藏元素的方法,每种方法都有优点和注意事项。
前端达人
2023/08/31
3160
分享 8 种在 CSS 中隐藏元素的方法
WordPress底部显示页面加载时间
效果预览 方法 1.将以下代码加入到主题的functions.php中 //页面加载时间自动检测 function wp_page_speed() { date_default_tim
回忆大大
2021/08/09
1.7K0
WordPress底部显示页面加载时间
WordPress底部显示页面加载时间
本文最后更新于2021年1月22日,已超过1年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
回忆大大
2023/03/08
1.5K0
WordPress底部显示页面加载时间
元素隐藏与显示属性及操作方式
浏览器对其渲染可是不可见,它在网页中占位置却不可点击,也就是说明元素不可见却仍然占据空间。
岳泽以
2022/10/26
1.6K0
元素隐藏与显示属性及操作方式
用 CSS 隐藏页面元素的 5 种方法
用 CSS 隐藏页面元素有许多种方法。你可以将 opacity 设为 0、将 visibility 设为 hidden、将 display 设为 none 或者将 position 设为 absolute 然后将位置设到不可见区域。
疯狂的技术宅
2019/03/28
2K0
点击加载更多

相似问题

初始页面加载后在页面上显示动态项

11

隐藏元素显示后未正确加载

12

在页面加载时隐藏或显示动态目标html元素的最佳方法?

30

在页面加载之前显示加载器元素,然后将其隐藏

13

在页面加载后立即再次加载页

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文