2016-07-12 1 views
1

Так что я не знаю, связано ли это с тем, что я не знаю достаточной терминологии или если она не была выполнена, но среди множества ответов я могу Не находите того, что касается моей проблемы. У меня две таблицы, мы будем называть их таблицей A и таблицей B. Таблица A имеет внешний ключ, который указывает на одну строку в B. Я хочу выбрать записи в col1, col2 и col3 группы A и добавить к этому выбору col4 и col5 из B, где строка в A имеет столбец id, который указывает на строку в B. например enter image description hereSQL соединяет столбцы между двумя таблицами, которые не имеют одинаковых столбцов

Я думал, что это должно быть легко с INNER JOIN, но я ничего не могу написать, что приводит к чему-либо, кроме синтаксической ошибки. Я довольно новичок в Sql, но это не кажется слишком сложным. Любая помощь всегда приветствуется.

ПРИМЕЧАНИЕ. Я использую Microsoft SQL Server, о чем мне говорят, важно знать.

+2

Да, это основное внутреннее соединение. Какой код вы пробовали, чтобы получить сообщение об ошибке? –

+1

Вы должны прочитать эту статью. Мало того, что это поможет в этой ситуации, важно понимать соединения, если вы хотите получать данные из любой реляционной базы данных. Объединения - это основа. Если вы действительно не понимаете присоединения, вы не можете продолжить свое знание. https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ –

+0

Оказывается, если кто-то заботится, что я правильно использовал JOIN, но я не понимал, что вы можете выбрать из нескольких таблиц сразу, поэтому я пытался присоединить его к другому элементу select. – bfieck

ответ

0

Используйте внутреннее соединение

select a.col1, a.col2, a.col3, b.col1, b.col2 
from tableA as a 
inner join tableB as b on a.b_id = b.id 
+2

Я думаю, что a.b_id будет ссылкой, судя по схеме, нет? – scsimon

+0

@scsimon объяснить лучше .. я не понимаю .. – scaisEdge

+1

@scsimon прав, он должен быть 'на a.b_id = b.id', потому что ключ, который указывает на B из A, является' b_id', а не ' id'. После того, как вы его измените, я приму ваш ответ. – bfieck