从另一个表中选择唯一的名称(名称)?
问题描述:
我有一个名为L1
的表,其中有3000条记录,其中有一个名为town_id
的字段。从另一个表中选择唯一的名称(名称)?
在L1
town_id
是数据的第二个表的整数ID叫towns
含有几百名镇 - 字段名称是name
。
我需要从城镇表中获得所有在L1
中有记录的不同城镇名称,以便我只选择实际使用的城镇列表,而不是列出所有城镇。
谁能告诉我怎样的结构,查询请,因为它是推动我逼疯了:)
答
要将一个表连接到另一个最快的方法通常是一个连接是。如果您正在编写查询,那么阅读并理解联接实际如何工作是个好主意,因为它是关系数据库的核心。一旦你加入了这两个表格,你可以做一个GROUP BY来合并一堆记录,这些记录共享一个共同的字段值(比如城镇名称)。所以,你可以这样做:
select towns.name from towns inner join L1 on L1.town_id = towns.id group by towns.name
但对于刚刚起步不同价值观的人通常选择使用“独立的”操盘手:
select distinct towns.name from towns inner join L1 on L1.town_id = towns.id
答
有几种方式来写。最简单的,或许是:
SELECT Name
FROM Towns
WHERE ID IN (SELECT Town_ID FROM L1)
另一个原因是:
SELECT DISTINCT T.Name
FROM Towns AS T
JOIN L1 ON T.ID = L1.Town_ID;
有乐趣发明了其他的方式...
答
也许这将帮助你:http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html - 敢肯定你想要一个INNER JOIN
。
美好的样子先生! –