关于distinct的问题
select distinct MyField lid,MyField from MyTable
这样是可行的。
select distinct a.MyField a.lID,a.MyField from MyTable a left outer join MyTable2 b on a.lID=b.UserID
但是这样就说'.' 附近有语法错误。这样如何是好?我要想根据a表的某一字段实现记录的唯一。
问题点数:20、回复次数:24Top
1 楼9728(生菜种子)回复于 2004-12-01 11:56:10 得分 0
请赐教,比较急Top
2 楼bzscs(沙虫 我爱小美)回复于 2004-12-01 11:56:45 得分 1
好像少了一个逗号啊
-select distinct a.MyField,a.lID,a.MyField from MyTable a left outer join MyTable2 b on a.lID=b.UserID
Top
3 楼good2speed(Goodspeed)回复于 2004-12-01 11:57:18 得分 1
select distinct a.MyField,a.lID,a.MyField from MyTable a left outer join MyTable2 b on a.lID=b.UserID
Top
4 楼9728(生菜种子)回复于 2004-12-01 12:16:56 得分 0
是的。加个逗号是行了,但是我是要对一个field进行判断,而不是所有field。
select distinct MyField lid,MyField from MyTable
这样是可行的。
Top
5 楼yingqing(曾明)回复于 2004-12-01 12:35:28 得分 5
distinct是對後面所有的 filed做判斷
select a.lID,a.MyField ,distinct a.MyField from MyTable a left outer join MyTable2 b on a.lID=b.UserID
這樣改一下,然後調整字段順序
Top
6 楼9728(生菜种子)回复于 2004-12-01 12:54:25 得分 0
To yingqing:
你的方法我早已试过,结果如下
在关键字 'distinct' 附近有语法错误。
感谢楼上的朋友出谋划策,但问题尚未解决Top
7 楼9728(生菜种子)回复于 2004-12-01 13:06:01 得分 0
upTop
8 楼9728(生菜种子)回复于 2004-12-01 14:22:44 得分 0
无法解决?Top
9 楼nksharp(全民節約 共同行動)回复于 2004-12-01 14:42:02 得分 1
我拭过,可以丫,楼主两个表的主健值是那几个Top
10 楼xuzhenhua21(舍得)回复于 2004-12-01 14:57:05 得分 1
说一下你的表结构和表中的数据
以及你想要的结果!这么问问题,大家都晕呀!Top
11 楼xuzhenhua21(舍得)回复于 2004-12-01 14:58:47 得分 1
友情up!Top
12 楼WangZWang(先来)回复于 2004-12-02 08:49:57 得分 1
你要实现何字段唯一?Top
13 楼9728(生菜种子)回复于 2004-12-02 09:33:11 得分 0
不好意思,原来是我没表达清楚。
例如:
Table1 有字段 lID(主键) VendorID(供应商) GoodsID(商品ID) 还有其它......
VendorID GoodsID都是可能重复的
Table2 有字段 GoodsID(商品ID) BarCode(条形码)还有其它商品明细...........
GoodsID是可能重复的,因为一个商品可能有多个条形码。
现在要实现表1的GoodsID唯一Top
14 楼9728(生菜种子)回复于 2004-12-02 10:21:20 得分 0
upTop
15 楼comszsoft(星星点灯)回复于 2004-12-02 10:29:12 得分 1
帮你顶,让邹老大进来看看Top
16 楼yyhyy23(只爱猪猪)回复于 2004-12-02 10:40:27 得分 1
select a.lID,a.MyField ,distinct a.MyField from MyTable a left outer join (select * from mytable2 group by goodsid) b on a.lID=b.UserID
Top
17 楼9728(生菜种子)回复于 2004-12-03 15:45:37 得分 0
谢谢!我试试Top
18 楼9728(生菜种子)回复于 2004-12-03 15:50:53 得分 0
谢谢热心帮顶,只是select a.lID,a.MyField ,distinct a.MyField from MyTable这样明显就是错误的。
Top
19 楼KingSeaMountain()回复于 2004-12-03 16:28:42 得分 1
-------------------------------------
Table1 有字段 lID(主键) VendorID(供应商) GoodsID(商品ID) 还有其它......
VendorID GoodsID都是可能重复的
Table2 有字段 GoodsID(商品ID) BarCode(条形码)还有其它商品明细...........
GoodsID是可能重复的,因为一个商品可能有多个条形码。
现在要实现表1的GoodsID唯一
----------------------------------------
我觉得你的数据库可能不妥,
应该单建一个表,只包含GoodsID,条形码,很可能再包括一个是否已售出,如果需要,实际售价也可以被包含。商品明细表中不应该包含条形码,否则你的数据冗余特别大,而且一致性要靠客户端代码来控制,不稳定。
这种情况下,从业务逻辑上讲,完全可以避免你那种情况。
Top
20 楼wjwboy(王建)回复于 2004-12-05 14:24:48 得分 5
select distinct MyField lid,MyField from MyTable
上面的语句等于下面的
select distinct MyField as lid,MyField from MyTable
Top
21 楼comszsoft(星星点灯)回复于 2004-12-05 21:00:28 得分 1
这样也不能确保得到唯一的值
select distinct f1,f2,f3 from table
会把f1,f2,f3都进行比较,只要3个中有一个字段不相同就会输出Top
22 楼friendly_2008(努力学习ing)回复于 2004-12-05 23:18:57 得分 0
试试这个
Select a.lID,a.MyField from
(select distinct a.MyField as lID from MyTable)a
inner join MyTable b on a.lID=b.MyField left outer join MyTable2 d on a.lID=d.UserIDTop
23 楼jshecn(海。水手)回复于 2004-12-05 23:47:02 得分 0
搂主我不知道你的目的是什么。针对不同的要求有不同的写法。
你的数据库本来比较乱,如果你想分类显示每个商品的信息(商品ID唯一,供应商唯一,条形码可能要多个)可以对GOODID order by.如果是只是查询某个商品可以where goodid = ''Top
24 楼hank212(IT民工)回复于 2005-08-16 19:56:56 得分 0
dfTop




