由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - SQL Server query 一问
相关主题
帮忙解释下这个查询,有关NULL的网站遭受Hack, 有哪位知道如何处理?
请教一个sql问题Rookie's question again
怎样解决 Index for NULL value请求SQL语句
急问Access Query问题:怎样查询最后一个非空的数值,谢谢求助:如何ColumName 作为变量放入query
紧急求助, 关于SQL Server问个SQL问题- partial outer join
咋样选一个表中在另一个表中不含有的记录SQL combine two tables into one table and add a new column
[转载] 问个SQL问题SQL copy a table into a new table and add a new column
one question on SQL新手请教SQL 语法问题- alias 和 join
相关话题的讨论汇总
话题: null话题: select话题: columnc2话题: columnc1话题: columnb2
进入Database版参与讨论
1 (共1页)
a******8
发帖数: 46
1
现有3张表A, B, C
A (Id1, Id2) with data
1 1
1 2
1 3
1 4
n********6
发帖数: 1511
2
我的土办法,不知是否可行。
1。把id1, id2连起来,变成id3。
2。
SELECT A.ID3, B.ColumnB1, B.ColumnB2, C.ColumnC1, C.ColumnC2
FROM A LEFT JOIN B ON A.ID3 = B.ID3
RIGHT JOIN C ON A.ID3 = B.ID3
细节和优化方案正在思索中。
B*****g
发帖数: 34098
3
SELECT a.id1, a.id2, b.ColumnB1, b.ColumnB2, NULL ColumnC1, NULL ColumnC2
FROM A a, B b
WHERE a.id1 = b.id2
AND a.id2 = b.id2
UNION ALL
SELECT a.id1, a.id2, NULL ColumnB1, NULL ColumnB2, ColumnC1, ColumnC2
FROM A a, C c
WHERE a.id1 = c.id2
AND a.id2 = c.id2
有包子吗?

【在 a******8 的大作中提到】
: 现有3张表A, B, C
: A (Id1, Id2) with data
: 1 1
: 1 2
: 1 3
: 1 4

a******8
发帖数: 46
4
结果似乎不对,不过还是给个包子。

【在 n********6 的大作中提到】
: 我的土办法,不知是否可行。
: 1。把id1, id2连起来,变成id3。
: 2。
: SELECT A.ID3, B.ColumnB1, B.ColumnB2, C.ColumnC1, C.ColumnC2
: FROM A LEFT JOIN B ON A.ID3 = B.ID3
: RIGHT JOIN C ON A.ID3 = B.ID3
: 细节和优化方案正在思索中。

a******8
发帖数: 46
5
十分感谢,包子送上!

【在 B*****g 的大作中提到】
: SELECT a.id1, a.id2, b.ColumnB1, b.ColumnB2, NULL ColumnC1, NULL ColumnC2
: FROM A a, B b
: WHERE a.id1 = b.id2
: AND a.id2 = b.id2
: UNION ALL
: SELECT a.id1, a.id2, NULL ColumnB1, NULL ColumnB2, ColumnC1, ColumnC2
: FROM A a, C c
: WHERE a.id1 = c.id2
: AND a.id2 = c.id2
: 有包子吗?

z*3
发帖数: 33
6
大牛们指教一下,没有调试过的说。。
create table d as select a.id1,a.id2,b.colb1,b.colb2,c.colc1,c.colc2 from a,b
,c where 1=0;
insert into d as select * from b;
insert into d as select * from c;
B*****g
发帖数: 34098
7
不对

a,b

【在 z*3 的大作中提到】
: 大牛们指教一下,没有调试过的说。。
: create table d as select a.id1,a.id2,b.colb1,b.colb2,c.colc1,c.colc2 from a,b
: ,c where 1=0;
: insert into d as select * from b;
: insert into d as select * from c;

z*3
发帖数: 33
8
vivian chow真的是不老玉女啊。。
a******8
发帖数: 46
9
- 表A的index是扫描一遍还是两遍?估计优化后是一遍。
- 如果要返回两个结果集(去掉UNION ALL一行),应该会扫描两次。有办法只扫描表A一
次吗?

【在 B*****g 的大作中提到】
: SELECT a.id1, a.id2, b.ColumnB1, b.ColumnB2, NULL ColumnC1, NULL ColumnC2
: FROM A a, B b
: WHERE a.id1 = b.id2
: AND a.id2 = b.id2
: UNION ALL
: SELECT a.id1, a.id2, NULL ColumnB1, NULL ColumnB2, ColumnC1, ColumnC2
: FROM A a, C c
: WHERE a.id1 = c.id2
: AND a.id2 = c.id2
: 有包子吗?

B*****g
发帖数: 34098
10
SELECT a.id1, a.id2, d.ColumnB1, d.ColumnB2, d.ColumnC1, d.ColumnC2
FROM A a,
(SELECT b.id1, b.id2, b.ColumnB1, b.ColumnB2, NULL ColumnC1, NULL ColumnC2
FROM B b
UNION ALL
SELECT c.id1, c.id2, NULL ColumnB1, NULL ColumnB2, ColumnC1, ColumnC2
FROM C c
) d
WHERE a.id1 = d.id2
AND a.id2 = d.id2

【在 a******8 的大作中提到】
: - 表A的index是扫描一遍还是两遍?估计优化后是一遍。
: - 如果要返回两个结果集(去掉UNION ALL一行),应该会扫描两次。有办法只扫描表A一
: 次吗?

相关主题
咋样选一个表中在另一个表中不含有的记录网站遭受Hack, 有哪位知道如何处理?
[转载] 问个SQL问题Rookie's question again
one question on SQL请求SQL语句
进入Database版参与讨论
d*h
发帖数: 2347
11
select A.id1, A.id2, B.ColumnB1 ColumnB1, B.ColumnB2 ColumnB2, NULL as
ColumnC1, NULL as ColumnC2
from table1 A
right join table2 B
on A.id1=B.id1
and A.id2=B.id2
union all
select A.id1, A.id2, NULL as ColumnB1, NULL as ColumnB2, C.ColumnC1 ColumnC1
, C.ColumnC2 ColumnC2
from table1 A
right join table3 C
on A.id1=C.id1
and A.id2=C.id2;
b*****e
发帖数: 364
12
Why you need Table A?
Table B and C is enough.
a******8
发帖数: 46
13
It's just an example for simplicity, there are other fields in table A.
B*****g
发帖数: 34098
14
ding

【在 a******8 的大作中提到】
: It's just an example for simplicity, there are other fields in table A.
d*h
发帖数: 2347
15
select A.id1, A.id2, B.ColumnB1 ColumnB1, B.ColumnB2 ColumnB2, NULL as
ColumnC1, NULL as ColumnC2
from A
right join B
on A.id1=B.id1
and A.id2=B.id2
union all
select A.id1, A.id2, NULL as ColumnB1, NULL as ColumnB2, C.ColumnC1 ColumnC1
, C.ColumnC2 ColumnC2
from A
right join C
on A.id1=C.id1
and A.id2=C.id2;
1 (共1页)
进入Database版参与讨论
相关主题
新手请教SQL 语法问题- alias 和 join紧急求助, 关于SQL Server
error of executing SQL query of string concatenation (转载咋样选一个表中在另一个表中不含有的记录
How to get other columns after UNION?[转载] 问个SQL问题
Cascade delete, update 的问题(MS SQL)one question on SQL
帮忙解释下这个查询,有关NULL的网站遭受Hack, 有哪位知道如何处理?
请教一个sql问题Rookie's question again
怎样解决 Index for NULL value请求SQL语句
急问Access Query问题:怎样查询最后一个非空的数值,谢谢求助:如何ColumName 作为变量放入query
相关话题的讨论汇总
话题: null话题: select话题: columnc2话题: columnc1话题: columnb2