当有多个同名时,SQL选择列

时间:2011-11-23 15:28:48

标签: sql call

我有这个查询

select *
from alldistros t1
LEFT join origin t2 on t1.name=t2.name
LEFT join desktop t3 on t2.name=t3.name
LEFT join beginnerdistributions t4 on t3.name=t4.name

它添加到我的所有表格上。但是现在当我想要选择名称字段(在所有这些字段中)时,我无法显示它。我打电话时它只是空白。而且我会这么认为,因为有超过1列相同的名称。

我该怎么做才能解决这个问题?

只是普通连接不起作用,因为它删除了一些在其他表中没有属性的字段。

3 个答案:

答案 0 :(得分:3)

您可以使用“AS”关键字命名列。例如:

select t1.name AS DistroName, t2.name AS OriginName, t3.name AS DesktopName
from alldistros t1
LEFT join origin t2 on t1.name=t2.name
LEFT join desktop t3 on t2.name=t3.name
LEFT join beginnerdistributions t4 on t3.name=t4.name

答案 1 :(得分:1)

select
  t1.name as t1_name,
  t2.name as t2_name,
  t3.name as t3_name
from alldistros t1
LEFT join origin t2 on t1.name=t2.name 
LEFT join desktop t3 on t2.name=t3.name 
LEFT join beginnerdistributions t4 on t3.name=t4.name

答案 2 :(得分:0)

不确定它是否仅限Oracle,但USING可以为您进行即席查询:

SELECT *
FROM TABLEA
JOIN TABLEB USING (NAME)

这只会从SELECT *。

返回一个NAME列