Я пытаюсь получить имя из другой таблицы, где находится FOREIGN KEY - PullRequest
1 голос
/ 11 апреля 2020

У меня есть две таблицы:

CREATE TABLE RecipeMaterial(
        recipe INT,
        material INT,
        howMuch INT,
        unit STRING,
CONSTRAINT RecipeMaterial_Recipe_fk
        FOREIGN KEY (recipe)
        REFERENCES Recipe (id)
CONSTRAINT RecipeMaterial_Material_fk
        FOREIGN KEY (material)
        REFERENCES Material (id)
        ON DELETE CASCADE
);

и

CREATE TABLE Material(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
unit TEXT,
plusUnit TEXT,
nowHave INTEGER,
min INTEGER
);

У меня также есть таблица рецептов, но здесь это не считается. Я хочу вставить в TableView, но вместо идентификатора материала, я хочу получить его значение имени из таблицы материалов. Поэтому я выбираю его идентификатор, но я хочу получить его имя по идентификатору и поместить его в TableView

Например:

Вместо

RecipeMaterial:
  recipe: 5;
  material: 10;
  howMuch: 10;
  unit: tablespoon

I хочу:

RecipeMaterial:
  recipe: 5;
  material: (name of material with ID 10);
  how much: 10;
  unit: tablespoon;

Я попробовал INNER JOIN, но он не работает, есть ли какое-то решение для этого?

1 Ответ

0 голосов
/ 11 апреля 2020

Вам нужно простое объединение, чтобы выбрать данные из таблиц. Для получения подробной информации, пожалуйста, посмотрите здесь: https://www.w3schools.com/sql/sql_join.asp

В вашем случае решение должно быть:

select
 rm.recipe,
 m.name,
 rm.howMuch,
 rm.unit
from
 RecipeMaterial rm,
 Material m
where 
rm.material = m.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...