#sql #sqlite #select #foreign-keys
Вопрос:
Допустим, у нас есть 1 родительская таблица (таблица клиентов) и множество дочерних таблиц (таблица форм) в SQLite.
Каждая из дочерних таблиц имеет внешний ключ (client_id), ссылающийся на первичный ключ родительской таблицы (client_id).
У меня есть имя и идентификатор одного клиента (скажем, client1), моя цель-найти формы, принадлежащие этому конкретному клиенту, что означает поиск таблиц, в которых внешний ключ ссылается на client_id: 1,
В приведенном ниже примере у нас есть 1 родительский элемент и 3 дочерние таблицы, 2 из которых ссылаются на client1 в таблице «клиенты», поэтому я хочу иметь возможность выбрать эти 2 таблицы на основе первичного ключа родительской таблицы (client_id) с помощью SQLITE
Примечание: Я не знаю имен дочерних таблиц, я хочу выбрать конкретные таблицы исключительно на основе идентификатора и имени клиента
Таблица Клиентов
идентификатор клиента | Имя |
---|---|
1 | клиент1 |
2 | клиент2 |
Форма Table1 (пример одной из множества дочерних таблиц)
ID | Идентификатор клиента | данные |
---|---|---|
1 | 1 | данные 1… |
2 | 1 | данные 2… |
форма Table2 (пример одной из множества дочерних таблиц)
идентификатор данных | клиент _Id | Группа |
---|---|---|
1 | 2 | dataA… |
2 | 2 | Да… |
форма Table3 (пример одной из множества дочерних таблиц)
идентификатор данных | клиент _Id | Группа |
---|---|---|
1 | 1 | dataA… |
2 | 1 | Да… |
Ответ №1:
вы можете использовать внутреннее соединение.
SELECT a1, a2, b1, b2
FROM A
INNER JOIN B on B.f = A.f;
Комментарии:
1. спасибо за ваш ответ, но ваш ответ не решает мою проблему, вы соединяете «А» с «Б», но, как я уже сказал в своем вопросе, я не знаю названий детских столов, пожалуйста, внимательно прочитайте мой вопрос