打印

[求助] 求助:一道面试题!!!SQL...

求助:一道面试题!!!SQL...

1. 假设一个出版社的数据库中有Books和Authors两个表,分别存储书籍信息和作者信息。
两个表的结构如下:
/* 书籍表 */ create table Books
(
ID int, /* 书籍编号 */ Author int, /* 作者编号 */ Title Varchar(100) /* 书名 */ )
/* 作者表 */ create table Authors
(
ID int, /* 作者编号 */ Name Varchar(100) /* 姓名 */ )
1) 请写一句SQL,列出所有作者姓名和其所写书籍名称。
2) 请写一句SQL,列出写过两本以上(包括两本)书籍的作者姓名。
我为成功而生,不为失败而活! 我为胜利而来,不因失败而去! 我要欢呼庆祝,不要抽泣哀诉!

TOP

1)SELECT a.Name, b.Title
FROM Authors a, books b
WHERE a.id = b.id;
2)
SELECT a.Name
FROM Authors a, (SELECT id,COUNT(*) count
FROM books) b
WHERE a.id = b.id
AND b.count >=2;

TOP

这么简单??????????
2楼写的有问题.

TOP

选择列表中的列‘books.ID’ 无效,因为该列没有包含在聚合函数或是GROUP BY子句中

TOP

引用:
原帖由 wode 于 2007-9-12 11:43 发表
选择列表中的列‘books.ID’ 无效,因为该列没有包含在聚合函数或是GROUP BY子句中
同意
2楼的说法不很正确
一个多情的人,却是世界上最痴情的人!
一个看似冷酷的人,却是世界上最善感的人!
一个长相平常的人,却有着一双迷人的眼睛!
一个偏瘦的人,却有着与生俱来的气质!
一个现实与理想永远想隔千万里的人!
   
   -------------------------这就是我  ,传说中的花香公子!!!

TOP

2楼的没问题,大致是那样

TOP

1)
SELECT a.Name, b.Title
FROM Authors a, books b
WHERE a.id = b.Author

2)
SELECT a.Name
FROM Authors a,
(SELECT author,COUNT(*) count FROM books Group By author) b
WHERE a.id = b.author AND b.count >= 2

TOP

楼上的正解

[ 本帖最后由 tianjianjun 于 2007-10-23 13:31 编辑 ]

TOP

同意七楼

TOP

同意七楼

TOP

2.SELECT Name
FROM Authors where id in
(SELECT author id FROM books Group By author having count(title)>=2)

TOP

select Name from Authors where id in (select Author from Books group by Author having count(*)>=2)

TOP

同意7楼的

TOP

不回

TOP

!!!!!

TOP

这个论坛好麻烦!!!

TOP

不知道为什么这么设计!!

TOP

!!!!

TOP

12

TOP

12222

TOP