2011-04-12 29 views
0

的我有一個包含數據這樣需要導致了兩條表的SQL查詢

表一

catId | catname   | Isdeleted 
------------------------------------------------- 

1    ABC    0 
2    DEF    0 
3    GHI    0 

,另一臺是

表B

id |  Name | Name1  | Catid 
-------------------------------------------------- 
1   abc   aaaa   1 
2   def   bbbb   1 
3   ghi   gggg   2 
4   jkl   jjjj   2 
5   xyz   xxxxx   3 
一兩個SQL Server表

現在我想要這種格式的結果

來自表a的名稱和來自表b的所有字段根據 表a和catname的catid應該是不同的。

請幫我

+1

然後,您需要決定如何顯示它。擁有可變數量的字段會變得更加複雜,這就是你所要求的(除非表b中每個'CatId'的記錄數量最多。 – JNK 2011-04-12 12:00:20

回答

1

寫您的查詢是這樣的:

SELECT DISTINCT a.catname, b.* FROM a INNER JOIN b 
ON a.catid = b.catid WHERE catid = [catid] 

如果在表B的多條記錄每個CATID或catname,你會看到在結果相同catname多個記錄。沒有其他選擇,除非在表a和b中catname都是唯一的。

+0

,但它顯示重複的名稱,我只需要不同的catnamae和根據該名稱的所有記錄 – anil 2011-04-12 10:24:54

+0

如果表b中有多個記錄用於每個catid或catname,則會在結果中看到具有相同catname的多個記錄。沒有其他選擇,除非在表a和b中catname都是唯一的。 – 2011-04-12 12:48:56

+0

@anil你要求的是將數據非規範化。有什麼特別的原因?大多數時候,這是一個壞主意。 – 2011-11-28 01:42:05