У меня есть таблица 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».
Вам не нужно использовать 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';
Я не уверен, правильно ли я понял ваш вопрос, но разве не должна работать следующая?
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