我有两张桌子
CompList
表包含以下列:CompId
,McID
,station
,slot
,subslot
以及其他几个< / p>
BookingTable
包含以下列:CompId
,LineID
,McID
,station
,slot
,subslot
。
我希望获得以下结果:
只有CompList.CompId == BookingTable.CompId
的行(只有两个表中的CompId)
我需要CompList
中的结果列:CompId
,McID
,station
,slot
,subslot
和来自{{ 1}}:BookingTable
,LineID
,McID
,station
,slot
我怎样才能在结果表中区分结果表中相同列的相同列?
感谢您的帮助。
答案 0 :(得分:2)
在select语句中为表名添加所有列名,并使用别名消除结果集中列的歧义:
http://www.w3schools.com/SQl/sql_alias.asp
说,我不清楚为什么你有这么多看似多余的数据。
答案 1 :(得分: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 :(得分: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
答案 3 :(得分: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
答案 4 :(得分: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
答案 5 :(得分:0)
根据您的问题,要区分CompList和BookingTable的列,请使用您希望在结果中获取的列的别名。
例如:让我们有两个表t1&amp; t2,在cols中都有相同的名称,表示cid,name,roll和address。
获取t1.cid == t2.cid(只有两个表中的cid)
我们写道:选择t1.cid, t1.name为name1, t1.roll as roll1, t1.address as address1, t2.name为name2, t2.roll为roll2, t2.address as address2 从t1,t2 其中t1.cid = t2.cid;