2011-01-12 16 views
0

を取得するには、次のクエリを行うことができます私は2つのテーブルはどのように私は必要な情報

  • CompList次の列を持つテーブルがありますカラム:CompId,LineID,McID,station,slot,subslot

私は次のような結果を取得したい:

行のみCompList.CompId == BookingTable.CompId(両方のテーブルにあるだけCOMPID)

ことを、私はCompListから結果列に必要:CompIdMcIDstationslot,subslotおよびBookingTableLineID,McID,station,slot,subslot

結果テーブルの同じテーブルと同じテーブルを結果テーブルで区別するにはどうしたらいいですか?

ありがとうございました。私はあなたがそんなに一見持っている理由については不明だ

http://www.w3schools.com/SQl/sql_alias.asp

言った、:

+0

http://dba.stackexchange.com/ –

答えて

2

使用別名:

SELECT 
    CL.CompId, 
    CL.McID, 
    CL.station, 
    CL.slot, 
    CL.subslot, 
    BT.LineID, 
    BT.McID  as BookingMcId, 
    BT.station as BookingStation, 
    BT.slot  as BookingSlot, 
    BT.subslot as BookingSubslot 
FROM CompList as CL 
JOIN BookingTable as BT ON BT.CompId = CL.CompId 
2

序文SELECT文でテーブル名を持つすべての列名、および結果セットのカラムを明確にするために別名を使用冗長データ。

0
select c.CompId,c.D,c.station,c.slot,c.subslot,b.neID,b.McID,b.station,b.slot,b.subslot from CompList c join BookingTable b on c.ComId=b.CompId 
0

あなたは、内側のテーブル間の結合んし、別のテーブルから同じ名前の列を区別するために列の別名を使用します。 http://msdn.microsoft.com/en-us/library/ms187731.aspx

select T1.Name as T1Name, T2.Name as T2Name 
from T1 
    inner join T2 
    on T1.ID = T2.ID 
0
SELECT 
    cl.CompId , cl.McID , cl.station, cl.slot, cl.subslot, 
    bt.LineID, bt.McID, bt.station, bt.slot, bt.subslot 
FROM 
    CompList cl 
INNER JOIN 
    BookingTable bt ON cl.McID=bt.McID 
0

CompListとBookingTableの列を区別するために、あなたの質問によると、あなたはその結果で取得したい列のエイリアス名を使用します。

例:2つのテーブルt1 & t2があります。両方とも、同じ名前の列にはcid、名前、ロール、およびアドレスがあります。選択t1.cid、NAME1として t1.name、roll1として t1.roll、 を:私たちが書くt1.cid == t2.cid(両方のテーブルにあるだけCID)

取得する

t1.address as address1、 t2.name as name2、 t2.roll as roll2、 t2。アドレス2としてアドレス t1、t2 ここで、t1.cid = t2.cid;

関連する問題