mysql - 如何使用子查询显示多个表中的列名
问题描述
我创建了以下表格并插入了这些值:
create table customer (cid int, cname varchar(25), email varchar(25), phone int, status varchar(25), primary key (cid));
create table accounts( cid int, account int, atype varchar(25), balance int, foreign key(cid) references customer(cid));
create table address( cid int, street varchar(25), city varchar(25), country varchar(25), foreign key(cid) references customer(cid));
insert into customer values (101,'A', 'a@gmail.com', 99,'active');
insert into accounts values (101, 123, 'SA', 1000);
insert into address values (101, 'HMT','Blore','India');
insert into customer values (102,'B', 'b@gmail.com', 199,'active');
insert into accounts values (102, 123, 'CA', 2000);
insert into address values (102, 'Jayanagar','Blore','India');
我的目标是显示状态为活动的客户的 cname、帐户和余额。
我试过用这个写查询:(我不能用这个打印列 cname)但它显示了其余的。
select account, balance
from accounts
where cid in (select cid from customer where status = 'active');
这不起作用:
select cname, account, balance
from customer, accounts
where cid in (select cid from customer where status = 'active');
解决方案
一种可能的方法是连接公共客户 ID 上的两个表。
SELECT c.cname,
a.account,
a.balance
FROM customer c
LEFT JOIN accounts a
ON a.cid = c.cid
WHERE c.status = 'active';
推荐阅读
- jquery - 使用 laravel8 一次将数据存储到两个表中
- python - 为什么 Markercluster 搜索栏会出错
- python - 从包含标题和值的数据框列中提取标题
- linux - leave-ret 和系统调用退出有什么区别?
- c# - CBFS c# - 从事件处理程序内的文件中读取一些字节
- python - Ubuntu 上的本机消息传递清单文件位置
- excel - 在 Excel 中,如何将一个单元格中的数字列表(例如 1、3、7)转换为相邻单元格中的虚拟变量(1)?
- codeigniter - 如何在表格中计算id和shows
- python - 无法在安装了 gevent 的情况下运行 Flask 应用程序
- java - 如何验证被测类内的交互?