Таблица отношений SQLite - PullRequest
       2

Таблица отношений SQLite

0 голосов
/ 06 ноября 2018

Иметь базу данных SQLite, где каждые несколько секунд хранятся 28 значений. У меня проблема в том, что значение хранится в другой таблице, чем таблица, в которой хранится имя переменной. Теперь, если это возможно, я хотел бы экспортировать значения, например, в Excel, поэтому нужно запросить обе таблицы. Идентификатор значения увеличивается каждый раз, когда значение сохраняется, поэтому необходимо иметь запрос, который считывает каждый идентификатор для определенной переменной. Однако мои знания SQL недостаточно хороши, поэтому я надеюсь, что мне здесь помогут.

База данных построена примерно так: Таблица 1 (называемая запись)

id  valueid  variable
1   1        foo
2   3        bar
3   4        foobar
4   5        foo
5   6        bar
...

Таблица 2 (вызываемое значение)

id  value
1   3.14
3   42
4   123
5   3.1415
6   4242
...

Так что, если я хотел бы прочитать все foo, он получил значение, хранящееся в таблице значений с идентификаторами 1, 4 и т. Д. (Иногда значение valueid увеличивается с 2 вместо 1). Возможно ли иметь SQL-команду с чем-то вроде SELECT all value FROM (table) value WHERE record.variable = foo?

1 Ответ

0 голосов
/ 06 ноября 2018

Вы можете просто объединить две таблицы в столбце valueid первой таблицы и использовать Где, чтобы отфильтровать его только к записям в таблице 1 со значением foo следующим образом:

--Select all columns from t2 (value table)
--Join the value table on table 1 using the foreign key column valueid of
--table 1, which is the relationship to the id column of value table
--Using INNER JOIN will only return results where a match is found in value table
--Use the WHERE clause to filter down to only records from table 1 with variable = 'foo'
--You can use AND to add to the conditions of your WHERE clause to filter by date range

SELECT t2.*
FROM record AS t1
INNER JOIN value AS t2
ON t2.[id] = t1.[valueid]
WHERE t1.[variable] = 'foo' AND t2.[TimeStamp] >= someTimeStamp AND t2.[TimeStamp] <= someOtherTimeStamp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...