由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - SQL 查询已经解决.谢谢Modeler,mirthc,cheungche
相关主题
咋样选一个表中在另一个表中不含有的记录请教大虾问题哈,包子谢哈
mysql 问题 (转载)菜鸟问题,急
问个SQL问题- partial outer join请教高手,包子谢
error of sql query in MS Access database (转载)how to write this query
请问sql语句能不能实现这样的功能请问个join的问题
2个月前用过outer join请求SQL语句
请教set和select 的区别问个 sp_send_dbmail 的问题
怎样快速得到两个表的交集数据库查询一个小问题
相关话题的讨论汇总
话题: 835448话题: table2话题: table1话题: select话题: 835449
进入Database版参与讨论
1 (共1页)
w*********g
发帖数: 2330
1
两个table, table1, table2 . 每个table各有两列A 和 B. 。 如何从table 1 选择出,
table1.A 和table2.A相等,在这个条件下,B不等的那些行。
想选择出如下的行
A B
835448 3
835448 4
835448 5
835449 2
835449 3
table1 的数据
A B
835448 0
835448 1
835448 2
835448 3
835448 4
835448 5
835449 0
835449 1
835449 2
835449 3
table2的数据
A B
835448 0
835448 1
835448 2
835449 0
835449 1
我写的语句
select distinct table1.A, table1.B
from table1, table2
where table1.A
a*******t
发帖数: 891
2
double check your query
select distinct table1.A, table1.B --you really mean to pull distinct only?
from table1, table2
where table1.A=RXs.table2.A --what is RXs?
AND table2.B != table2.B --you mean table1.B <> table2.B
order by A --you didn't get an error with this? need to provide table name
w*********g
发帖数: 2330
3
敲错了一个东西,
这个query是可以运行的,
但是结果不是我想要的。
请问应该如何些query的我想要的结果呢?
谢谢

【在 a*******t 的大作中提到】
: double check your query
: select distinct table1.A, table1.B --you really mean to pull distinct only?
: from table1, table2
: where table1.A=RXs.table2.A --what is RXs?
: AND table2.B != table2.B --you mean table1.B <> table2.B
: order by A --you didn't get an error with this? need to provide table name

a*******t
发帖数: 891
4
select table1.*
from table1, table2
where table1.A = table2.B
and table1.B <> table2.B
you can try it, not sure if it'll work
and it's recommanded to use "join" operator instead of implied join by using "where" causes

【在 w*********g 的大作中提到】
: 敲错了一个东西,
: 这个query是可以运行的,
: 但是结果不是我想要的。
: 请问应该如何些query的我想要的结果呢?
: 谢谢

w*********g
发帖数: 2330
5
还是错误的,我很崩溃。
table1 的A列的数据,存在于 和table2 的A列,
但是 table1 中的B列有一些数据 不 存在于 table 2的B列,
想把table1和table2 中 A列相同,但是B列不存在的那些行选出来。
请看我的原文描述。
m**********2
发帖数: 2252
6
select t1.* from table1 t1
left join table2 t2
on t1.a = t2.a
where table2.a is null

【在 w*********g 的大作中提到】
: 还是错误的,我很崩溃。
: table1 的A列的数据,存在于 和table2 的A列,
: 但是 table1 中的B列有一些数据 不 存在于 table 2的B列,
: 想把table1和table2 中 A列相同,但是B列不存在的那些行选出来。
: 请看我的原文描述。

m**********2
发帖数: 2252
7
没有看到这个。
这样试试:
select * from table1 t1
where t1.a in
(select t2.a from table2 t2)
and t1.b not in
(select t2.b from table2 t2)

【在 w*********g 的大作中提到】
: 还是错误的,我很崩溃。
: table1 的A列的数据,存在于 和table2 的A列,
: 但是 table1 中的B列有一些数据 不 存在于 table 2的B列,
: 想把table1和table2 中 A列相同,但是B列不存在的那些行选出来。
: 请看我的原文描述。

w*********g
发帖数: 2330
8
不行啊,
还是一样的结果。
没有选出A列中存在,但B列不存的数。

【在 m**********2 的大作中提到】
: 没有看到这个。
: 这样试试:
: select * from table1 t1
: where t1.a in
: (select t2.a from table2 t2)
: and t1.b not in
: (select t2.b from table2 t2)

M*****r
发帖数: 1536
9
选出table1.A=table2.A and table1.B=table2.B 的rows, 然后从table1里面减去这些
rows。

出,

【在 w*********g 的大作中提到】
: 两个table, table1, table2 . 每个table各有两列A 和 B. 。 如何从table 1 选择出,
: table1.A 和table2.A相等,在这个条件下,B不等的那些行。
: 想选择出如下的行
: A B
: 835448 3
: 835448 4
: 835448 5
: 835449 2
: 835449 3
: table1 的数据

w*********g
发帖数: 2330
10
query 如何写?多谢。

【在 M*****r 的大作中提到】
: 选出table1.A=table2.A and table1.B=table2.B 的rows, 然后从table1里面减去这些
: rows。
:
: 出,

相关主题
2个月前用过outer join请教大虾问题哈,包子谢哈
请教set和select 的区别菜鸟问题,急
怎样快速得到两个表的交集请教高手,包子谢
进入Database版参与讨论
M*****r
发帖数: 1536
11
select * from tbl1 except (select tbl1.* from tbl1, tbl2 where tbl1.A=tbl2.A
and tbl1.B=tbl2.B)
上面这个query基于一些假设,也许只适用于你给的例子

【在 M*****r 的大作中提到】
: 选出table1.A=table2.A and table1.B=table2.B 的rows, 然后从table1里面减去这些
: rows。
:
: 出,

m******y
发帖数: 588
12
SQL SERVER 2000:
SELECT t1.A, t1.B
FROM table1 t1
LEFT OUTER JOIN table2 t3 ON t1.A=t3.A AND t1.B=t3.B
WHERE t3.A IS NULL
AND EXISTS (SELECT 1 FROM table2 t2 WHERE t2.A=t1.A)
2005:
SELECT A, B
FROM
(
SELECT A,B FROM table1 t1
EXCEPT
SELECT A,B FROM table2 t2
) t3
WHERE EXISTS (SELECT 1 FROM table2 WHERE t3.A=table2.A)
b*****o
发帖数: 284
13
Select * from t1 where concat(A,'_',B) not in
(Select distinct concat(A,'_',B) from t2)
c*******e
发帖数: 8624
14
你这个query有问题,
table1:
A B
835448 0
table2:
A B
835448 0
835448 1
这里table1和table2第二个record满足你的条件
但是实际上table2里面有table1里面的record
记住在A相等的情况下,table2里面只要有一条记录不等,
table1里面那条就会被pull进来
一般你可以用minus或者outer join + where ... is null

出,

【在 w*********g 的大作中提到】
: 两个table, table1, table2 . 每个table各有两列A 和 B. 。 如何从table 1 选择出,
: table1.A 和table2.A相等,在这个条件下,B不等的那些行。
: 想选择出如下的行
: A B
: 835448 3
: 835448 4
: 835448 5
: 835449 2
: 835449 3
: table1 的数据

c*******e
发帖数: 8624
15
具体query;
select A, B from table1
minus
select A, B from table2
或者
select table1.A, table1.B
from table1
left outer join table2
on table1.A = table2.A
and table1.B = table2.B
where table2.B is null ;

【在 c*******e 的大作中提到】
: 你这个query有问题,
: table1:
: A B
: 835448 0
: table2:
: A B
: 835448 0
: 835448 1
: 这里table1和table2第二个record满足你的条件
: 但是实际上table2里面有table1里面的record

w*********g
发帖数: 2330
16
谢谢 Modeler,mirthcyy, 还有cheungche, 问题已经解决,谢谢大家热心的指导,太
感谢了。
r*****y
发帖数: 264
17
试试这个
select t1.* from table1 t1
where
t1.a in (select t2.a from table2 t2)
and not exists (
selct t2.a from table t2
where t1.a = t2.a and
t1.b = t2.b
)
w*********g
发帖数: 2330
18
你好,你的这个query可以给小弟解释一下吗,谢谢。
我没读懂

【在 m******y 的大作中提到】
: SQL SERVER 2000:
: SELECT t1.A, t1.B
: FROM table1 t1
: LEFT OUTER JOIN table2 t3 ON t1.A=t3.A AND t1.B=t3.B
: WHERE t3.A IS NULL
: AND EXISTS (SELECT 1 FROM table2 t2 WHERE t2.A=t1.A)
: 2005:
: SELECT A, B
: FROM
: (

m******y
发帖数: 588
19
SELECT t1.A, t1.B
FROM table1 t1
LEFT OUTER JOIN table2 t3 ON t1.A=t3.A AND t1.B=t3.B
WHERE t3.A IS NULL
AND EXISTS (SELECT 1 FROM table2 t2 WHERE t2.A=t1.A)
LEFT OUTER JOIN plus NULL criteria 就等于找table1里面与table2 A和B value有不
相同的records. 这个同2005的except是一样的。
Exists 那部分找table1里面A value也在table2里面的records.
两个合起来就是你要的了。
w*********g
发帖数: 2330
20
谢谢你,现在很明白了。请问哪一个教材比较好的讲了复合 t-sql 的操作呢?
我想系统的学习一下,感觉还是很多要学习

【在 m******y 的大作中提到】
: SELECT t1.A, t1.B
: FROM table1 t1
: LEFT OUTER JOIN table2 t3 ON t1.A=t3.A AND t1.B=t3.B
: WHERE t3.A IS NULL
: AND EXISTS (SELECT 1 FROM table2 t2 WHERE t2.A=t1.A)
: LEFT OUTER JOIN plus NULL criteria 就等于找table1里面与table2 A和B value有不
: 相同的records. 这个同2005的except是一样的。
: Exists 那部分找table1里面A value也在table2里面的records.
: 两个合起来就是你要的了。

1 (共1页)
进入Database版参与讨论
相关主题
数据库查询一个小问题请问sql语句能不能实现这样的功能
SQL combine two tables into one table and add a new column2个月前用过outer join
sort two same tables SQL but different results请教set和select 的区别
SQL copy a table into a new table and add a new column怎样快速得到两个表的交集
咋样选一个表中在另一个表中不含有的记录请教大虾问题哈,包子谢哈
mysql 问题 (转载)菜鸟问题,急
问个SQL问题- partial outer join请教高手,包子谢
error of sql query in MS Access database (转载)how to write this query
相关话题的讨论汇总
话题: 835448话题: table2话题: table1话题: select话题: 835449