2010-08-16 114 views
0

我有兩個表test1 { id, name }test2 { id, name, family }和我寫此查詢:SQL查詢列名

SELECT dbo.test1.*, dbo.test2.* 
FROM dbo.test1 
CROSS JOIN dbo.test2 

但在datagridview1,我想顯示的字段(在頭)是這樣的:

test1.id test1.name test2.id test2.name test2.family

而是它們顯示這樣

id name id name family

我的查詢需要哪些更改。

回答

1

你需要單獨選擇列,並使用as關鍵字:

SELECT dbo.test1.id as test1id, dbo.test2.id as test2id ... 
FROM dbo.test1 
CROSS JOIN dbo.test2 
+0

了'as'關鍵字並不是必需的,但可能使事情變得更具有可讀性 – Scoregraphic 2010-08-16 08:46:58

+0

或者您可以使用方括號點我想,'dbo.test1.id爲[test1.id]'。但是最好在數據網格控件中選擇並重命名這些列。 – Rup 2010-08-16 08:47:16

+0

感謝您attention.if我有我想穿越加入他們更多的表,我想證明,像這樣的Fileds每個tabale:tb1.filed1 tb1.filed2 tb2.filed1 .....我應該怎麼辦? – Farna 2010-08-16 09:15:58

3

簡短的回答是:您可以隨意更改網格列的標題。您也可以隨意重新排列/隱藏/排序列。

3

我會寫的選擇,如:

select t1.id as "test1.Id", 
     t1.name as "test1.Name", 
     t2.id as "test2.Id", 
     t2.name as "test2.Name", 
     t2.family as "Test2.Family" 
from test1 t1, test2 t2 

但與查詢,你會得到一個笛卡兒產品,如果你不添加適當的Where子句。

1

你在問如何對列進行別名?

SELECT 
    t1.id AS [test1.id], 
    t1.name AS [test1.name] , 
    t2.id AS [test2.id], 
    t2.name AS [test2.name] , 
    t2.family AS [test2.family] 
FROM dbo.test1 t1 
CROSS JOIN dbo.test2 t2 

由於您想要的名稱不符合標識符的標準規則,因此需要引用它們。

1

壞碼不好。不過,我會像@Scoregraphic提到的那樣做。即使您的所有專欄回到co1; col1; col1,您都可以更改訂單和標籤。使用DataGridView中列的屬性。