Запрос на присоединение дает 0 результатов? - PullRequest
0 голосов
/ 28 августа 2018

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

Student and Classes

Стол ученика выглядит так:

StudentID Name FavoriteClass

Таблица классов выглядит следующим образом:

ClassId ClassName Subject

Я создал отношения между Student.FavoriteClass и Classes.ClassName. Однако для таблицы Student значение StudentID - это PK, а поле ClassId - это PK для классов.

Я предполагаю, что причина, по которой я не могу присоединиться к этим таблицам, заключается в том, что я пытаюсь объединить поля, которые не являются ключами. Если это причина, у вас, ребята, есть рекомендации, чтобы это исправить?

Мой запрос выглядит так:

SELECT [Classes].[Subject] FROM Classes INNER JOIN Student ON  Student.[FavoriteClass].Value =  [Classes].[ClassName];

Примечание. [FavoriteClass]. Значение требуется для запросов Access и многозначных элементов управления.

Так что, если мой Стол ученика имел, например:

1 Mark ENG-101
2 Chris CS-103
3 Mary MAT-101

И у моей таблицы классов было:

1 ENG-101 English
2 CS-103 Computer Science
3 MAT-101 Algebra
4 GS-102 Geography Studies

Я хочу получить поле Subject классов, в котором FavoriteClass таблицы Student совпадает с полем ClassName таблицы Classes.

1 Ответ

0 голосов
/ 29 августа 2018

Убедитесь, что тип многозначного поля действительно является текстовым типом. Я предполагаю, что это число (ClassId), которое действительно имело бы гораздо больший смысл. Так что отбросьте свои отношения и (если хотите) создайте новое между Student.FavoriteClass и Classes.ClassId.

По вашему запросу попробуйте это:

SELECT [Student].[Name], [Classes].[Subject] 
FROM Classes 
INNER JOIN Student ON Student.[FavoriteClass].Value = [Classes].[ClassId];

Для получения дополнительной информации я предлагаю прочитать это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...