sql中 in的用法
你現在的這個要求一般不用in.
假如你說的大類C是指大類的名稱是"C", 則用下面的語句:
select c.*
from category a,category b, product c
where *='C' and *=0
and *=*
and *=*
首先從category中取出name為'C'且pid為0的數據(得到cid), 表映射到a;
然后以自聯,再從category中取得pid為a的cid的數據(也就是大類C中的所有小類,表映射到b;
最后再關聯產品表product, 取得cid為b的cid的所有產品,表映射到c.
當然, 如果你所說的C大類, 直接就知道其id號, 就像你給的例子中直接知道了10, 那么"自聯"這步就不需要了.
-------------------------------
如果非要用in, 則按下面的方式:
select * from product where cid in (
select *
from category a,category b
where *='C' and *=0
and *=*
)
-------------------------------
另外, in 還用在下面這種情況, 比如:
你想取得1,3,8,9這四個小類的所有產品, 則可以用:
select * from product where cid in (1,3,8,9)
請問SQL中IN的用法,急
你可以另外建個專門放百家姓的表啊,然后用UPDATE sheet1 SET *ality = "china" WHERE * IN (select name from newtable)就可以了,或者使用exists來支持模糊,這樣你可以在新表中輸入'Li*'等姓氏UPDATE sheet1 SET *ality = "china" WHERE exists(select name from newtable where * like name)。
sql中 in的用法
這樣寫
select * from product where cid in(select cid from
category where cid= 10 or pid =10 )
其中 select cid from category where cid= 10 or pid =10
是得到 包括自己在內的大類下面的所有小類的cid
得到了所有滿足條件的 cid 后就可以select出 所有類別下面的 產品
然后如果要排序 就在最后加 order by 什么的
sql in 用法
常用的情況:
between:
select * from [tablename] where [日期] between '2008-01-01' and '2008-10-31'
--查詢字段[日期]在2008-01-01(含)至2008-10-31(含)之間 表tablename的記錄。
in:
1、select * from [tablename] where [日期] in ('2008-01-01','2008-02-01','2008-03-01')
--查詢表tablename中[日期]是2008年第一季度第一天的記錄
2、select * from [tablename] where [日期] in (select [日期] from [tb] where 條件。 )
--查詢表tablename里[日期]在 (表tb 里符合條件 的 日期)。
轉載請注明出處華閱文章網 » sql語句in的用法