2014-10-05 57 views
0

我正在用SQL编写一个创建视图程序,而我上一次创建视图语句给了我一些麻烦。对于这个观点陈述,我想从哥伦比亚市的所有大学中找回所有的使用者。然后我想使用子查询来获取该人的名字和姓氏的信息。官方的说明如下使用in命令创建一个SQL视图命令

Write a query that returns only the uid value for all universities in the city Columbia. Then use 
that query with an IN sub-query expression to retrieve the first and last names for all people that 
go to school in Columbias 

我现在会后,我写了创建表语句的代码,那么我会后,我将使用的视图语句两个表。我在这里先向您的帮助表示感谢。

CREATE VIEW inn AS 
SELECT a.uid 
FROM letsdoit.university as a 
WHERE b.fname, b.lname IN(SELECT b.fname, b.lname FROM letsdoit.person as b WHERE (a.city = "Columbia")); 

表是

   Table "letsdoit.university" 
    Column  |   Type   |      Modifiers       
-----------------+-----------------------+-------------------------------------- 
uid    | integer    | not null default nextval('university) uid_seq'::regclass) 
university_name | character varying(50) | 
city   | character varying(50) | 



      Table "letsdoit.person" 
Column |   Type   |      Modifiers     
--------+-----------------------+----------------------------------------------- 
pid | integer    | not null default nextval('person_pid_seq'::reg class) 
uid | integer    | 
fname | character varying(25) | not null 
lname | character varying(25) | not null 

回答

0

基于问题的陈述,它看起来像你将被要求创建应该是在子查询第一个查询,并应以此为标准来发现这个大学的人名(因为UID在人和大学),所以你的观点是这样的:

create view inn as 
select fname, lname 
    from letsdoit.person 
where uid in (select uid from letsdoit.university where city = 'Columbia')