MySQL - Как выбрать несколько столбцов в одном запросе? - PullRequest
1 голос
/ 08 мая 2011

Я создаю базу данных для карточной программы бинго. У меня есть 2 таблицы. Одним из них является 'card_cd':

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 номеров), с юниверсом из 40. В первом столбце должны быть только цифры 1-8, во втором - 9-16 и т. Д. , Что я сделал, так это то, что я генерирую все возможные комбинации столбцов; так что если из 8 чисел взято 4, есть 70 возможных комбинаций для каждого столбца. У нас есть 5 столбцов, поэтому есть 350 различных столбцов. Эти столбцы сохраняются в таблице «card_column_cl». В 'card_cd' я сохранил только идентификаторы столбцов (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

1 Ответ

1 голос
/ 08 мая 2011

Единственный способ получить такой результат - что-то вроде этого:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...