2个表
Product_T_Product
Product_ID(GUID),Product_Name,等等无关的列
Product_T_Picture
Pricture_ID(GUID),Product_ID(外键),Pricture_Url
某个商品对应多种图片的..
现在怎样把所有商品查出来,商品不重复
Product_T_Product
Product_ID(GUID),Product_Name,等等无关的列
Product_T_Picture
Pricture_ID(GUID),Product_ID(外键),Pricture_Url
某个商品对应多种图片的..
现在怎样把所有商品查出来,商品不重复
select distinct Product_Name from Product_T_Product
Left Join Product_T_Picture B on A.Product_ID = B.Product_ID是要这样?
id1 商品1 图片1.1
id1 商品1 图片1.2
id1 商品1 图片1.3
id2 商品2 图片2.1
id2 商品2 图片2.2
现在希望查出来只要
id1 商品1 图片1.1(图片任意)
id2 商品2 图片2.1 (图片任意)
select
a.*
from
Product_T_Product a,Product_T_Picture b
where
a.Product_ID=b.Product_ID
*
from
tb t
where
Pricture_ID=(select min(Pricture_ID) from tb where Product_ID=t.Product_ID)
*
from
tb t
where
Pricture_ID=(select min(Pricture_ID) from tb where Product_ID=t.Product_ID and Product_Name=t.Product_Name)
select Product_ID,Product_Name
,(select top 1 Pricture_Url from Product_T_Picture where Product_ID = a.Product_ID)
as '图片'
from Product_T_Product a
-- Author :fredrickhu(我是小F,向高手学习)
-- Date :2010-01-19 10:21:27
-- Version:
-- Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
-- Nov 24 2008 13:01:59
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 1)
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([Product_ID] varchar(3),[Product_Name] varchar(5),[Pricture_ID] varchar(7))
insert [tb]
select 'id1','商品1','图片1.1' union all
select 'id1','商品1','图片1.2' union all
select 'id1','商品1','图片1.3' union all
select 'id2','商品2','图片2.1' union all
select 'id2','商品2','图片2.2'
--------------开始查询--------------------------
select
*
from
tb t
where
Pricture_ID=(select min(Pricture_ID) from tb where Product_ID=t.Product_ID and Product_Name=t.Product_Name)
----------------结果----------------------------
/* Product_ID Product_Name Pricture_ID
---------- ------------ -----------
id1 商品1 图片1.1
id2 商品2 图片2.1(2 行受影响)
*/