我有2个表:“Hotels
”和“Area
”。
“Hotels
”表格包含以下列:INDEX, NAME, AREA
示例数据:
(1,'hotel bla", 4)
“Area
”tbale包含以下列:INDEX, NAME, CODE
示例数据:
(4,'TEL-AVIV','TLV')
这意味着“hotel bla
”位于tel aviv
我需要创建一个名称和面积相同的酒店列表(“重复酒店”) 对于examaple: 酒店有3个记录:
1,'hotel a',1
2,'hotel a',1
3,'hotel b',2
4,'hotel b',2
5,'hotel c',1
区域有2条记录
1,'tel-aviv','TLV'
2,'haifa','HAF'
输出应该是这样的: '酒店一','1' 'hotel b,'2'
更新: 如果我在表中只有1条酒店记录,我不想退货。 您的所有答案也将归还
参见固定的examaple
答案 0 :(得分:0)
您需要使用distinct关键字才能获得不同的记录。
select distinct name, area from hotels
如果您只需要名称和区域列,这将只为您提供唯一的行。
但如果您还需要ID列,可以尝试
select id, max(name) name, max(area) as area from hotels group by name,area;
或
select id, first(name) name, first(area) as area from hotels group by name,area;
取决于您正在使用的DBMS
答案 1 :(得分:0)
select name, area
from hotels
group by name, area
having count(1) > 1;
这将为您提供同名且属于同一地区的酒店。
sqlfiddle的演示。