SELECT tbs.name 表名,ds.value 描述,tbs.crdate 建立日期,ds.major_id,tbs.id
FROM sysobjects tbs
LEFT JOIN sys.extended_properties ds ON ds.major_id=tbs.id
WHERE tbs.type='U'and tbs.name='DS_wip_soh'
and isnull(ds.minor_id,0)=0
order by tbs.name
结果如下:
为什么这两个ID不一样呢?
我的最终问题是:
查询1、
SELECT tbs.name 表名,ds.value 描述,tbs.crdate 建立日期,ds.major_id,tbs.id
FROM sysobjects tbs
LEFT JOIN sys.extended_properties ds ON ds.major_id=tbs.id
WHERE tbs.type='U'and tbs.name='DS_wip_soh'
and isnull(ds.minor_id,0)=0
order by tbs.name
SELECT tbs.name 表名,tbs.crdate 建立日期,TBS.id
FROM sysobjects tbs
WHERE tbs.type='U'and tbs.name='DS_wip_soh'
select * from sys.extended_properties where isnull(minor_id,0)=0 and major_id=2129427772
结果是:
SELECT tbs.name 表名,ds.value 描述,tbs.crdate 建立日期,ds.major_id,tbs.id
FROM sysobjects tbs
LEFT OUTER JOIN sys.extended_properties ds ON isnull(ds.major_id,0)=tbs.id
WHERE tbs.type='U'and tbs.name='ds_po_quo'
and isnull(ds.minor_id,0)=0
order by tbs.name
SELECT tbs.name 表名,tbs.crdate 建立日期,TBS.id
FROM sysobjects tbs
WHERE tbs.type='U'and tbs.name='ds_po_quo'
select * from sys.extended_properties where isnull(minor_id,0)=0 and major_id=1795287809
结果是:
因为你用了left join
所以左表里有数据,右表里没有对应数据的,也会查出来
你不想要这个数据,改inner join
你可以了解下left join,inner join,right join的区别
left join :就是你以sql中左边表为主表,当你查询时,左表有数据,右边没数据时,依然会查询出数据,这时数据库返回左表信息,右表信息则返回字段信息,值的为null。
奇怪,第一个查询和第二查询有什么区别?我想都出来,改成LEFT JOIN也是没出来。左边是有记录的。
SELECT tbs.name 表名,ds.value 描述,tbs.crdate 建立日期,ds.major_id,tbs.id
FROM sysobjects tbs
LEFT JOIN sys.extended_properties ds ON isnull(ds.major_id,0)=tbs.id
WHERE tbs.type='U'and tbs.name='ds_po_quo'
and isnull(ds.minor_id,0)=0
order by tbs.name
SELECT tbs.name 表名,tbs.crdate 建立日期,TBS.id
FROM sysobjects tbs
WHERE tbs.type='U'and tbs.name='ds_po_quo'
select * from sys.extended_properties where isnull(minor_id,0)=0 and major_id=1795287809
看到TBS表有记录的,LEFTJOIN ds后没记录,我问是这个原因?我想也要出现。应该如何做?
没有结果了?都不对啊!
知道答案了!
SELECT tbs.name 表名,ds.value 描述,tbs.crdate 建立日期
FROM sysobjects tbs
LEFT JOIN (select major_id,[Value] from sys.extended_properties where isnull(minor_id,0)=0) ds ON ds.major_id=tbs.id
WHERE tbs.type='u'
order by tbs.name