#sql #sqlite
#sql #sqlite
Вопрос:
У меня есть такая таблица в SQLITE3
:
Мне нужно запрашивать эту таблицу по ID|DOC_ID|TRANS_DOC_ID
и, что наиболее важно, по DATE
, потому что мне нужно получать данные изо дня в день. пример: TODAY|YESTERDAY|ETC
Пока запрос прост, так как я могу просто сделать это, чтобы получить строки по дням:
SELECT * FROM CLIENTRECORD WHERE DATE = '2020-12-01'
Проблема в том, что мне нужно отображать определенные записи в другие даты:
пример: у меня есть строка с DATE
2020-12-01
, но я также хочу, чтобы она отображалась на DATE
2020-01-01
или, может 2020-01-02
быть, и т.д. Что мне делать в этой ситуации? и поэтому я подумал о добавлении другого столбца, DATES
который должен был представлять собой массив дат, разделенных запятыми, НО я понял, что это ПЛОХОЕ решение, я также подумал о добавлении отдельной ТАБЛИЦЫ только для дат, но поскольку даты не являются фиксированными (они могут содержать 1 дату или, может быть, даже 10, которыезнает), я не понимаю, что я должен делать.
Конечная цель состоит в том, что строка может содержать или не содержать более 1 даты, будет выглядеть примерно так, если я хочу запросить строку с несколькими датами или без них:
SELECT * FROM CLIENTRECORD WHERE DATE = '2020-12-01' OR DATES LIKE '2020-12-01'
что-то похожее на это.
Комментарии:
1. «Я хочу отображать определенные записи в другие даты». Хорошо, включите эти даты в ваше
where
предложение. Я немного смущен тем, что вы спрашиваете.2. нет, мне нужно связать строку с другими датами, я пытаюсь сказать, что строка может содержать не более 1 даты.
3. Разве ваша проблема не решена с
WHERE DATE IN ('2020-12-01', '2020-12-02', ....)
помощью? Вы должны уточнить, что вы хотите.4. @forpas Как я уже говорил, я хотел, чтобы строка содержала более 1 даты, но не знаю, как вставить более 1 даты в строку. Есть ли что-то, что я плохо объясняю? пожалуйста, дайте мне знать.
DATE
поле не может содержать более 1 даты, поэтому я попытался использоватьDATES
field, но я не уверен, идеально ли это или даже как запросить его позже, поскольку строка может содержать более 1 даты, сколько? на самом деле не знаю, поскольку пользователь может добавлять столько дат, сколько захочет.5. Создайте еще одну таблицу с 2 столбцами: столбцом, который будет ссылкой на первичный ключ текущей таблицы, и датой. Итак, если для строки в вашей текущей таблице требуется 10 дат, у вас будет 10 строк в новой таблице с тем же значением для 1-го столбца и 10 дат для столбца даты. Когда вам нужно запросить текущую таблицу, вы просто присоедините ее к новой таблице, и ссылка будет первичным ключом текущей таблицы и 1-го столбца новой таблицы. Прочитайте это: sqlitetutorial.net/sqlite-inner-join