Присоединение внешнего ключа на 3 таблицы

У меня есть таблица TableA, которая содержит 2 разных внешних ключей таблиц TableB и TableC. Я пытаюсь получить данные из таблицы TableB, но в зависимости от значения из таблицы TableC.

С помощью этого запроса я получаю все значения, но я не знаю, как написать предложение where для фильтрации и получить данные, которые мне нужны.

SELECT TableC.value1,TableB.value2
FROM TableA
JOIN TableB ON TableB.ID = TableA.ID
JOIN TableC ON TableC.ID = TableA.ID

Редактировать :
Картинка моих столов.
введите описание изображения здесь

Поэтому я пытаюсь показать данные из таблицы B, но только те, которые соответствуют таблице C.

Новое редактирование:
введите описание изображения здесь

Я получаю значения из 2 таблиц, но теперь мне нужно показать только значение столбца A, равное «val2». Представьте, что столбец B имеет значения как «val2», «val2», «val3» и так далее. Мне нужно показать только то, что является «val2».

3

Решение

Вам не нужно использовать WHERE пункт. Что вам нужно, это исправить ваши JOIN и сделать это JOIN tablec с условием TableA.TableC_ID = TableC.ID вместо этого, вот так:

SELECT TableC.value1,TableB.value2
FROM TableA
JOIN TableB ON TableB.ID        = TableA.ID
JOIN TableC ON TableA.TableC_ID = TableC.ID
WHERE tableA.ColumnA = 'val2';
1

Другие решения

Я не уверен, правильно ли я понял ваш вопрос, но разве не должна работать следующая?

SELECT TableC.value1,TableB.value2
FROM TableA
JOIN TableB ON TableB.ID = TableA.ID
JOIN TableC ON TableC.ID = TableA.ID
WHERE TableC.myColumn = MyValue
3

По вопросам рекламы [email protected]