2011-05-08 67 views
1

我正在爲賓果卡計劃創建數據庫。我有兩張桌子。一個是 'card_cd':MySQL - 如何在一個查詢中選擇多個列?

 
card_cd: 

NAME | TYPE 
id_cd | int 
col1_id_cd | int 
col2_id_cd | int 
col3_id_cd | int 
col4_id_cd | int 
col5_id_cd | int 

另一種是 'card_column_cl':

 
card_column_cl 

NAME | TYPE 
id_cl | int 
order_cl | int 
n1_cl | int 
n2_cl | int 
n3_cl | int 
n4_cl | int 

的賓果卡是由5列與4號各(共20個號碼),用只有數字1-8應該在第一列,9-16應該在第二列,依此類推。我所做的是我生成了所有可能的列組合;所以如果從8個數字取4個,每列有70個可能的組合。我們有5列,所以有350個不同的列。這些列保存在'card_column_cl'表中。在'card_cd'中,我只保存每列的列id(id_cl)(以避免冗餘和太多數據)。我現在的問題是如何查詢的SELECT語句會包含所有數字之列,像這樣:

 

NAME | VALUE 
id_cd | 123456 
col1.n1_cl | 1 
col1.n2_cl | 2 
col1.n3_cl | 3 
col1.n4_cl | 4 

col2.n1_cl | 9 
col2.n2_cl | 10 
col2.n3_cl | 11 
col2.n4_cl | 12 

col3.n1_cl | 17 
col3.n2_cl | 18 
col3.n3_cl | 19 
col3.n4_cl | 20 

col4.n1_cl | 25 
col4.n2_cl | 26 
col4.n3_cl | 27 
col4.n4_cl | 28 

col5.n1_cl | 33 
col5.n2_cl | 34 
col5.n3_cl | 35 
col5.n4_cl | 36 

我不知道怎麼寫的查詢字符串。請幫幫我。非常感謝:d

+0

退房這個問題,可以幫助你http://stackoverflow.com/questions/4209886/mysql - 選擇 - 隨機行與聯接,從兩桌 – afarazit 2011-05-08 13:04:09

回答

1

,你可以得到這一結果的唯一方法是這樣的:

SELECT * 
FROM card_cd 
INNER JOIN card_column_cl AS col1 ON (col1.id_cl = card_cd.col1_id_cd) 
INNER JOIN card_column_cl AS col2 ON (col2.id_cl = card_cd.col2_id_cd) 
INNER JOIN card_column_cl AS col3 ON (col3.id_cl = card_cd.col3_id_cd) 
INNER JOIN card_column_cl AS col4 ON (col4.id_cl = card_cd.col4_id_cd) 
INNER JOIN card_column_cl AS col5 ON (col5.id_cl = card_cd.col5_id_cd)