sql从选择中查找子项
我有以下客户详细信息表:sql从选择中查找子项,sql,Sql,我有以下客户详细信息表: Cnmbr, loc,group 10001 003 10003 015 10003 0001 10003 0002 10007 006 10009 003 10012 006 10012 0001 etc 我想查找003组和015组客户的所有客户详细信息(如果有,还包括他们的位置) 所以在这个例子中,结果应该是 Cnmbr, loc,group 10001
Cnmbr, loc,group
10001 003
10003 015
10003 0001
10003 0002
10007 006
10009 003
10012 006
10012 0001
etc
我想查找003组和015组客户的所有客户详细信息(如果有,还包括他们的位置)
所以在这个例子中,结果应该是
Cnmbr, loc,group
10001 003
10003 015
10003 0001
10003 0002
10009 003
编辑
尝试使用此内部连接,但似乎不起作用
select *
from customers tbl1
where tbl1.group = '003' or tbl.tbl.group = '015'
inner join customers tbl2 on tbl1.Cnmbr = tbl2.Cnmbr
and tbl1.loc <> tbl2.loc
选择*
来自客户tbl1
其中tbl1.group='003'或tbl.tbl.group='015'
tbl1.Cnmbr=tbl2.Cnmbr上的内部联接客户tbl2
和tbl1.loc tbl2.loc
使用存在
:
SELECT *
FROM mytable AS t1
WHERE EXISTS (
SELECT 1
FROM mytable AS t2
WHERE t1.Cnmbr = t2.Cnmbr AND `group` IN ('003', '015'))
您正在使用哪些数据库管理系统?博士后?Oracle?为什么返回第3行(10003 0001)和第4行(10003 0002)?Jarlh,因为第2行(客户编号10003)在组015中,那么客户编号10003的所有位置都应显示在结果BMS中:从Lotus Notes服务器到IBM iSeries的odbc连接您的“内部连接”位置错误。“where”子句必须出现在任何联接之后。SQL不起作用,因为在联接之前有where子句。谢谢Giorgos。我不得不在t2.group中更改'group',然后它对我起了作用。我的服务器似乎不明白“@MarcJonkers Backticks”在MySQL中用作字段名delimeters。当我发布答案时,我以为你正在使用MySQL。很高兴我能帮助你!