有如下需求:
Baker,Cooper,Fletcher,Miller and Smith住在一座房子的不同楼层。
Baker 不住顶层。Cooper不住底层。
Fletcher 既不住顶层也不住底层。Miller住得比Cooper高。
Smith住的楼层和Fletcher不相邻。
Fletcher住的楼层和Cooper不相邻。
用sql写出来
解题思路:
先实现所有人住楼层的排列组合,然后把条件套进去即求得。如何实现排列组合,
1.基础数据准备
--准备基础数据,用A、B、C、D、E分别表示Baker,Miller and Smith
<div class="jb51code">
<pre class="brush:sql;">
CREATE TABLE ttb
(
subname VARCHAR(1),realname VARCHAR(10)
)
INSERT INTO ttb
VALUES ( 'A','Baker' ),( 'B','Cooper' ),( 'C','Fletcher' ),( 'D','Miller' ),( 'E','Smith' )