我有这个查询
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列相同的名称。
我该怎么做才能解决这个问题?
只是普通连接不起作用,因为它删除了一些在其他表中没有属性的字段。
答案 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列