sql語句查詢類別下所有子類sql語句查詢類別下所有子類

2021-03-07 21:39:17 字數 4033 閱讀 9859

1樓:匿名使用者

--假如表名是 tablea

select *

from tablea b

where id between 2 and 6union all

select *

from tablea a

where exists

(select *

from tablea b

where b.id between 2 and 6and a.id=b.fid

)--第二辦法是使用遞迴

with

tempas(

select *

from tablea

where id between 2 and 6union all

select b.*

from temp

inner join tablea b on b.id=temp.id

)select *

from temp

2樓:

create table tb

(id int,

name varchar(20),

fid int

)insert into tb values( 1,'一級1',0)insert into tb values( 2,'一級2',0)insert into tb values( 3,'二級1',2)insert into tb values( 4,'二級2',2)insert into tb values( 5,'**1',4)insert into tb values( 6,'四級1',5)insert into tb values( 7,'二級1',1)with tmp(id,name,fid) as(select id,name,fid from tb where id in (2)

union all

select tb.id,tb.name,tb.fid from tb inner join tmp on tb.fid = tmp.id

)select distinct * from tmp order by id,fid

2 一級2 0

3二級1 2

4 二級2 2

5**1 4

6 四級1 5

3樓:匿名使用者

select * from table where id in (2,3,4,5,6);

4樓:車a豪

select * from table where id in (2,3,4,5,6)

如何只用sql語句查詢一個類別下面所有子類包含的資訊?

5樓:匿名使用者

select * from news left join newclass on news.classid=newclass.classid where newclass.

classparentid=news.classid 沒怎麼仔細看 我理解的是 新聞表是主表 查詢的是 所有newclass表裡所有 classparentid等於classid的資料

6樓:匿名使用者

select * from flfl start with classid =華北 connect by classparentid = prior classid;oracle的樹查詢可以實現,其他資料庫就不瞭解了這個語句會把省一級的資料也查詢出來,可以的話加個深度的欄位會好點。

7樓:匿名使用者

sql server 2000因為你這裡說了只有**分類,所以我就不寫sql函式了,得到華北下面所有子類別的classid(不包括華北的classid)select classid from newclass where classparentid in (select classid from newclass where classparentid=51)

根據類別classid表查詢新聞select * from news where classid in (select classid from newclass where classparentid in (select classid from newclass where classparentid=51))ok了

sql 查詢:無限極分類,獲取父類下所有子類

8樓:匿名使用者

如果bai

在dusql sever 2005或以上版本zhi可dao

以這樣內

with a as(

select id,nodename,pid from 表容 where id='05009'

union all

select x.id,a.nodename,a.pid from 表 x,a

where x.pid=a.id)

select * from a

9樓:匿名使用者

這問題很有趣哦!很多公司面試經常提到!有三種辦法:

1.父類

子類都各自建表(內不推薦)

2.子類父類容同在一張表(推介)

3.還有一種做法記不清了。

下面說說第二種做法吧!

你可以在資料庫中建一張表都擁有以上的欄位,然後在hibernate配置檔案裡配置一對多的關係,自己類對自己類做一對多的關聯,具體配置你可以在一些論壇**上搜到的。然後查詢時你只要按id=父類的那個id去查一遍就全出來了.

10樓:蕢楊氏甕鵑

我菜鳥,要好幾句.寫個遞迴,查一下類別下的所有子類然後select*from

文章where

分類in(,,,);

sql語句查詢一級分類下的二級分類以此類推

11樓:儒雅的棟

封裝一個類:

<?php

use illuminate\database\eloquent\model;

class sort extends model/*** @param [sorts] $[需要被格式化的資料]* @param pid 當前分類的父類

*/public function  gettree($sorts,$pid =0)}}

}return $arr;}}

12樓:曹傑博

用 select * from 表 where dm like '01%'

sql 刪除類別下所有子類的資訊及類別資訊

13樓:匿名使用者

你的bai表結構要描述清楚。才能幫du忙的哇zhi。

是單表父子dao

關聯,還是多表關聯。專

比如a、b、c三個表

a表存屬儲企業資訊 id是主鍵存放企業編號b表村產品 存在gid企業編號與a中企業編號對應c表存供求 存在gid企業編號與a中企業編號對應b、c與a是多對一關係。

因為a中企業數量包含且大於bc企業數量,所以想想刪除a中多餘的企業記錄

那就用delete from a where id not in (select gid from b) and id not in (select gid from c)

14樓:

請詳細點,是要刪除表裡的資訊嗎,delete from tablea

使用sql語句查詢出來一級分類下的二級分類和**分類並生成execl

15樓:匿名使用者

select * from a,b,c where a.xx=b.xx and c.oo = b.oo

或者 select * from a,b,c where a.xx in(select b.xx form b where b.oo in(...同理省略...))

由於你就截個圖,只能幫你到回

這裡了答

16樓:匿名使用者

啥意思,你的**是你所要的結果?你的原始資料呢?

sql查詢語句like 的問題,sql查詢語句Like 的問題

like 操作符用於在 where 子句中搜尋列中的指定模式。sql like 操作符語法 select column name s from table name where column name like pattern 萬用字元 描述 替代一個或多個字元 僅替代一個字元 charlist 字...

sql語句如何將表進行關聯查詢,sql語句如何將三個表進行關聯查詢?

select distinct a.caseno caseno,a.daterecived,a.buildid,a.contractno,max b.dateofrmi dateofrmi,c.venue,c.district from a left join b on a.caseno b.cas...

sql語句查詢並統計查詢結果數量

可以通過count函式來實現。sqlone select from tablename1 where id 5 此語句查詢出來多條記錄,之後看做一個新的表。sqltwo select conut from select from tablename1 where id 5 as tablename2...