Redian新闻
>
今典问题: 这个Self Query咋写?
avatar
今典问题: 这个Self Query咋写?# Database - 数据库
w*y
1
问个今典问题吧。
TABLE Person
ID Parent_ID
1 1
2 1
3 2
4 3
求所有 ID 1 的decedents. SQL Server.
谢谢。
avatar
n*m
2
should use CTE(COMMON TABLE EXPRESSION)

【在 w*****y 的大作中提到】
: 问个今典问题吧。
: TABLE Person
: ID Parent_ID
: 1 1
: 2 1
: 3 2
: 4 3
: 求所有 ID 1 的decedents. SQL Server.
: 谢谢。

avatar
w*y
3
SQL Server 支持吗?
GOOGLE研究了一下, 好像要用temporary table 或者用啥 "WITH". 没太懂。
哪位大虾给这个QUERY 个简单答案吧。

【在 n**m 的大作中提到】
: should use CTE(COMMON TABLE EXPRESSION)
avatar
n*m
4
IS THIS YOUR HOMEWORK?

【在 w*****y 的大作中提到】
: SQL Server 支持吗?
: GOOGLE研究了一下, 好像要用temporary table 或者用啥 "WITH". 没太懂。
: 哪位大虾给这个QUERY 个简单答案吧。

avatar
n*m
6
DROP TABLE PERSON ;
COMMIT;
CREATE TABLE PERSON (ID INT, PARENT_ID INT);
COMMIT;

INSERT INTO PERSON VALUES(1,1);
INSERT INTO PERSON VALUES(2,1);
INSERT INTO PERSON VALUES(3,2);
INSERT INTO PERSON VALUES(4,3);
INSERT INTO PERSON VALUES(6,5);

【在 n**m 的大作中提到】
: https://aurora.vcu.edu/db2help/db2s0/frame3.htm#withsel
: I will give out my answer tomorrow. :-)

avatar
w*y
7
No. I just want to learn this.

【在 n**m 的大作中提到】
: IS THIS YOUR HOMEWORK?
avatar
w*y
8
Let me study study, reserch research.

【在 n**m 的大作中提到】
: DROP TABLE PERSON ;
: COMMIT;
: CREATE TABLE PERSON (ID INT, PARENT_ID INT);
: COMMIT;
:
: INSERT INTO PERSON VALUES(1,1);
: INSERT INTO PERSON VALUES(2,1);
: INSERT INTO PERSON VALUES(3,2);
: INSERT INTO PERSON VALUES(4,3);
: INSERT INTO PERSON VALUES(6,5);

avatar
w*y
9
I am using T-SQL of SQL Server2k not DB2 a. With is not supported. :(

【在 n**m 的大作中提到】
: DROP TABLE PERSON ;
: COMMIT;
: CREATE TABLE PERSON (ID INT, PARENT_ID INT);
: COMMIT;
:
: INSERT INTO PERSON VALUES(1,1);
: INSERT INTO PERSON VALUES(2,1);
: INSERT INTO PERSON VALUES(3,2);
: INSERT INTO PERSON VALUES(4,3);
: INSERT INTO PERSON VALUES(6,5);

avatar
w*y
10
Just this seems to work too.
SELECT CHILD.ID, CHILD.PARENT_ID
FROM PERSON PARENT, PERSON CHILD
WHERE PARENT.ID = CHILD.PARENT_ID

【在 n**m 的大作中提到】
: DROP TABLE PERSON ;
: COMMIT;
: CREATE TABLE PERSON (ID INT, PARENT_ID INT);
: COMMIT;
:
: INSERT INTO PERSON VALUES(1,1);
: INSERT INTO PERSON VALUES(2,1);
: INSERT INTO PERSON VALUES(3,2);
: INSERT INTO PERSON VALUES(4,3);
: INSERT INTO PERSON VALUES(6,5);

avatar
n*m
11
No, your can't work. I don't believe it can do recursive. :-)

【在 w*****y 的大作中提到】
: Just this seems to work too.
: SELECT CHILD.ID, CHILD.PARENT_ID
: FROM PERSON PARENT, PERSON CHILD
: WHERE PARENT.ID = CHILD.PARENT_ID

avatar
b*e
12
还是oracle简单,connect by prior.

【在 w*****y 的大作中提到】
: 问个今典问题吧。
: TABLE Person
: ID Parent_ID
: 1 1
: 2 1
: 3 2
: 4 3
: 求所有 ID 1 的decedents. SQL Server.
: 谢谢。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。