SQL SERVER一條語(yǔ)句查詢公用屬性的數(shù)據(jù)簡(jiǎn)單處理

有那么一個(gè)小的需求,我現(xiàn)在有一張產(chǎn)品表,那么業(yè)務(wù)部門需要讓我們進(jìn)行一個(gè)統(tǒng)計(jì):
他告訴了我們“我們需要一張擁有我指定的同樣配置的產(chǎn)品列表!”
話音剛落尸疆,苦逼的我們程序員就要開始執(zhí)行任務(wù)啦!
其實(shí)業(yè)務(wù)場(chǎng)景很簡(jiǎn)單惶岭,寫這個(gè)小文章只是為了讓有同樣需求的同學(xué)們少走彎路寿弱,特此記錄了下來(lái)。
表結(jié)構(gòu):(我利用臨時(shí)表)

IF EXISTS (SELECT 1 FROM tempdb..sysobjects WHERE name LIKE '%#ProductPropertyInfo%' and TYPE='U')
DROP TABLE #ProductInfo

IF EXISTS (SELECT 1 FROM tempdb..sysobjects WHERE name LIKE '%#ProductPropertyInfo%' and TYPE='U')
DROP TABLE #ProductPropertyInfo

CREATE TABLE #ProductInfo(
[產(chǎn)品ID] [int] NULL,
[產(chǎn)品名稱] nvarchar(50) NULL,
[產(chǎn)品型號(hào)] nvarchar(50) NULL
)

CREATE TABLE #ProductPropertyInfo(
[產(chǎn)品ID] [int] NULL,
[屬性配置] nvarchar(50) NULL
)

插入臨時(shí)數(shù)據(jù)
INSERT INTO #ProductInfo([產(chǎn)品ID],[產(chǎn)品名稱],[產(chǎn)品型號(hào)])VALUES(1,'長(zhǎng)城汽車','C50');
INSERT INTO #ProductInfo([產(chǎn)品ID],[產(chǎn)品名稱],[產(chǎn)品型號(hào)])VALUES(2,'長(zhǎng)城汽車','C30');
INSERT INTO #ProductInfo([產(chǎn)品ID],[產(chǎn)品名稱],[產(chǎn)品型號(hào)])VALUES(3,'長(zhǎng)城汽車','H5');
INSERT INTO #ProductInfo([產(chǎn)品ID],[產(chǎn)品名稱],[產(chǎn)品型號(hào)])VALUES(4,'長(zhǎng)城汽車','H6');

INSERT INTO #ProductInfo([產(chǎn)品ID],[產(chǎn)品名稱],[產(chǎn)品型號(hào)])VALUES(5,'奧迪汽車','A4');
INSERT INTO #ProductInfo([產(chǎn)品ID],[產(chǎn)品名稱],[產(chǎn)品型號(hào)])VALUES(6,'奧迪汽車','A6');
INSERT INTO #ProductInfo([產(chǎn)品ID],[產(chǎn)品名稱],[產(chǎn)品型號(hào)])VALUES(7,'奧迪汽車','A8');
INSERT INTO #ProductInfo([產(chǎn)品ID],[產(chǎn)品名稱],[產(chǎn)品型號(hào)])VALUES(8,'奧迪汽車','A3');

INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(1,'天窗');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(1,'電加熱座椅');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(1,'渦輪增壓');

INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(2,'天窗');

INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(3,'渦輪增壓');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(3,'電加熱座椅');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(3,'天窗');

INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(4,'渦輪增壓');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(4,'精英輪轂');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(4,'電加熱座椅');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(4,'天窗');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(4,'GPS');

INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(8,'天窗');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(8,'渦輪增壓');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(8,'電加熱座椅');

INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(5,'自動(dòng)泊車');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(5,'電加熱座椅');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(5,'天窗');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(5,'渦輪增壓');

INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(6,'自動(dòng)泊車');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(6,'電加熱座椅');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(6,'天窗');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(6,'渦輪增壓');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(6,'精英輪轂');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(6,'GPS');

INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(7,'自動(dòng)泊車');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(7,'電加熱座椅');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(7,'天窗');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(7,'渦輪增壓');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(7,'精英輪轂');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(7,'防彈玻璃');
INSERT INTO #ProductPropertyInfo([產(chǎn)品ID],[屬性配置])VALUES(7,'GPS');

查看數(shù)據(jù)效果:

QQ圖片20150907132019.png

從模擬數(shù)據(jù)上可以直觀的看到我們所要查詢的數(shù)據(jù)按灶,我們要根據(jù)配置來(lái)選車症革,根據(jù)我們想要的功能來(lái)查看有那款車子符合我的需求:
語(yǔ)句:(假設(shè)我目前需要擁有:“精英輪轂”和“GPS”功能特性的車子)

SELECT * FROM #ProductInfo p INNER JOIN (
SELECT
[產(chǎn)品ID]
FROM #ProductPropertyInfo WHERE [屬性配置] IN ('精英輪轂','GPS')
GROUP BY [產(chǎn)品ID] HAVING(COUNT(DISTINCT [屬性配置]) > 1)) y ON p.[產(chǎn)品ID] = y.[產(chǎn)品ID]

查詢特性的語(yǔ)句完全取決于:[屬性配置] IN ('精英輪轂','GPS') 想要什么配置就有什么配置啦!
本文章只作為基礎(chǔ)SQL語(yǔ)句的功能實(shí)現(xiàn)部分,如果有更好的方式也可以一起交流鸯旁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末噪矛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子铺罢,更是在濱河造成了極大的恐慌艇挨,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件韭赘,死亡現(xiàn)場(chǎng)離奇詭異缩滨,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門脉漏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)苞冯,“玉大人,你說(shuō)我怎么就攤上這事侧巨【顺” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵刃泡,是天一觀的道長(zhǎng)巧娱。 經(jīng)常有香客問(wèn)我,道長(zhǎng)烘贴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任撮胧,我火速辦了婚禮桨踪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘芹啥。我一直安慰自己锻离,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布墓怀。 她就那樣靜靜地躺著汽纠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪傀履。 梳的紋絲不亂的頭發(fā)上虱朵,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音钓账,去河邊找鬼碴犬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛梆暮,可吹牛的內(nèi)容都是我干的服协。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼啦粹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼偿荷!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起唠椭,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤跳纳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后泪蔫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棒旗,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了铣揉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饶深。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖逛拱,靈堂內(nèi)的尸體忽然破棺而出敌厘,到底是詐尸還是另有隱情,我是刑警寧澤朽合,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布俱两,位于F島的核電站,受9級(jí)特大地震影響曹步,放射性物質(zhì)發(fā)生泄漏宪彩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一讲婚、第九天 我趴在偏房一處隱蔽的房頂上張望尿孔。 院中可真熱鬧,春花似錦筹麸、人聲如沸活合。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)白指。三九已至,卻和暖如春酵紫,著一層夾襖步出監(jiān)牢的瞬間告嘲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工憨闰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留状蜗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓鹉动,卻偏偏與公主長(zhǎng)得像轧坎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子泽示,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容