我有桌子人
Name Id Age Sex Country
Ankit ankitgautam24 17 M India
John john321 71 M France
Will willsmith 42 M USA
Arti artisingh 67 F Pakistan
.....3.5 million records......
另一个表格限制
Country Sex Allow
France F Allowed
France M Restricted
India F Restricted
India M Allowed
Pakistan F Restricted
....for each country ......
现在我想将其转换为表格Useraccount,其结构应为
Name Id Age Sex Country Allow
Ankit ankitgautam24 17 M India Allowed
John john321 71 M France Restricted
Will willsmith 42 M USA Allowed
Arti artisingh 67 F Pakistan Allowed
.....hundreds of thousands of record......
以最聪明的方式将这两个表连接到一个的正确查询是什么
答案 0 :(得分:3)
您需要的只是一个简单明了的JOIN
,而且不会花费太多时间:
SELECT p.Name, p.Id, p.Age, p.Sex, p.Country,
r.Allow
FROM People p
INNER JOIN Restriction r ON p.Country = r.Country
JOIN
这将是更有效的方法,但要提高效率,而不是加入Country
名称上的两个表格,最好添加CountryID
并将其加入此列。因此,您的表People
应如下所示:
Name
。Id
。Age
。CountryId
约束外键引用Restrictions
表(CountryId
)。 Restrictions
表:
CountryID
。IsAllwoed
。答案 1 :(得分:0)
你也可以试试这个:
SELECT p.Name,
p.Id,
p.Age,
p.Sex,
p.Country,
r.Allow,
r.Country
from people p, Restriction r
where r.Country=p.Country