0

我有 2 个表:“ Hotels”和“ Area”。

" Hotels" 表有以下列:INDEX, NAME, AREA

样本数据 :

(1,'hotel bla", 4)

" Area" tbale 具有以下列:INDEX, NAME, CODE

样本数据 :

(4,'TEL-AVIV','TLV')

这意味着“ hotel bla”在tel aviv

例如,我需要创建一个名称和区域相同的酒店列表(“重复酒店”):酒店有 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'

输出应该类似于:'hotel a','1' 'hotel b,'2'

更新:如果我在表中只有 1 条酒店记录,我不想返回它。你所有的答案也会返回

见固定示例

4

2 回答 2

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

于 2013-08-27T07:52:12.067 回答
0
select name, area
  from hotels
 group by name, area
having count(1) > 1;

这将为您提供具有相同名称且属于同一区域的酒店。

sqlfiddle演示。

于 2013-08-27T07:58:15.190 回答