+ -
当前位置:首页 → 问答吧 → 这里的 where 100 in 的100怎么理解丫?

这里的 where 100 in 的100怎么理解丫?

时间:2011-11-27

来源:互联网

USE pubs
SELECT DISTINCT au_lname, au_fname
FROM authors
WHERE 100 IN
  (SELECT royaltyper
  FROM titleauthor
  WHERE titleauthor.au_id = authors.au_id)

作者: hy_number_one   发布时间: 2011-11-27

没见过这种用法,除非100是个列名,那么应该用[]括号括起来.
WHERE [100] IN

作者: dawugui   发布时间: 2011-11-27

SQL code
USE pubs
SELECT DISTINCT au_lname, au_fname
FROM authors
WHERE exists
  (SELECT 1
  FROM titleauthor
  WHERE titleauthor.au_id = authors.au_id and royaltyper=100)


就等这
authors表的au_id 

的titleauthor表同一au_id 的royaltyper=100的记录

作者: roy_88   发布时间: 2011-11-27

没有见过这种用法,观看!

作者: Yp2800   发布时间: 2011-11-27

等价于:
SQL code
select distinct a.au_lname,a.au_fname
from authors a inner join titleauthor b on a.au_id=b.au_id where b.royaltyper=100
/*
au_lname                                 au_fname
---------------------------------------- --------------------
Blotchet-Halls                           Reginald
Carson                                   Cheryl
del Castillo                             Innes
Green                                    Marjorie
Locksley                                 Charlene
Panteley                                 Sylvia
Ringer                                   Albert
Straight                                 Dean
White                                    Johnson

(9 行受影响)
*/

作者: qianjin036a   发布时间: 2011-11-27

一样的理解 100包含在子查询里面啊

作者: fredrickhu   发布时间: 2011-11-27

这样更容易理解:
SQL code
SELECT DISTINCT au_lname, au_fname
FROM authors
WHERE exists
  (SELECT 1
  FROM titleauthor
  WHERE titleauthor.au_id = authors.au_id and royaltyper=100)

作者: qianjin036a   发布时间: 2011-11-27