现在一个表,存入52张扑克牌的基本资料,内容如下:
table: Deck
iOrdinalId Card Suit Symbol
37 Q Hearts !
39 A Hearts #
40 2 Diamonds $
41 3 Diamonds %
43 5 Diamonds &
45 7 Diamonds (
46 8 Diamonds )
44 6 Diamonds *
51 K Diamonds ,
52 A Diamonds .
47 9 Diamonds :
48 10 Diamonds ;
49 J Diamonds <
50 Q Diamonds >
38 K Hearts @
42 4 Diamonds ^
36 J Hearts 0
27 2 Hearts 1
28 3 Hearts 2
29 4 Hearts 3
30 5 Hearts 4
31 6 Hearts 5
32 7 Hearts 6
33 8 Hearts 7
34 9 Hearts 8
35 10 Hearts 9
1 2 Spades A
2 3 Spades B
3 4 Spades C
4 5 Spades D
5 6 Spades E
6 7 Spades F
7 8 Spades G
8 9 Spades H
9 10 Spades I
10 J Spades J
11 Q Spades K
12 K Spades L
13 A Spades M
14 2 Clubs N
15 3 Clubs O
16 4 Clubs P
17 5 Clubs Q
18 6 Clubs R
19 7 Clubs S
20 8 Clubs T
21 9 Clubs U
22 10 Clubs V
23 J Clubs W
24 Q Clubs X
25 K Clubs Y
26 A Clubs Z
--------------------------------------------
Symbol列是用来唯一标识一张牌的。
现在要做一个查询,查出任意两张牌的所有组合。比如 红桃K,和方块2的组合为"@, $", 因为是组合,所以"$, @"就不应该出现在结果中。
这个查询如何做?
用
select a.symbol,b.symbol form Deck as a,Deck as b where a.symbol<>b.symbol
查询后,再在程序中选出有用的数据不行吗?直接用查询语句好像比较困难
select a.symbol,b.symbol form Deck as a,Deck as b
where a.symbol < b.symbol
嗯,高,实在是高!
select a.card,a.suit,b.card,b.suit,a.symbol+,+b.symbol as 组合
from Deck as a,Deck as b
where a.symbol < b.symbol
红桃K,和方块2的组合为"@, $", 因为是组合,所以"$, @"就不应该出现在结果中。
看不懂题目!