Внутреннее соединение SQL неверный вывод из двух таблиц - PullRequest
0 голосов
/ 23 ноября 2018

Таблица учеников:

ID | Family_ID | Student_name | F_name

Таблица семей:

ID | F_name | Contact_No

Я хочу получить все записи от студентов, где повторяется family_id. (В основном, я хочу знать студентов Братья / Сестрызаписывает, есть ли они в таблице учеников.

я пробовал это таким образом, но получил неправильный вывод;

SELECT students.*
FROM students
INNER JOIN families 
    ON families.id = students.family_id
    ORDER BY families.id ASC

мой запрос приводит к изображению: как вы можете видеть, некоторые идентификаторыпоказывая, что другие - больше, чем один раз, но я думаю, что все должно появиться более одного раза.

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Вы можете попробовать использовать объединение в подзапросе для family_id, у которого в учениках более одной строки

SELECT students.*
FROM students
inner join  (
    select students.family_id
    FROM students
    group by students.family_id
    having count(*)>1
) t on t. family_id = students.family_id
0 голосов
/ 23 ноября 2018

Если вы хотите видеть только релевантных людей, вам не нужно связывать их с таблицей семей.Вы можете сгруппировать студента с помощью family_id.Вот ваш запрос:

SELECT * 
FROM Student
WHERE family_id IN (SELECT family_id 
                    FROM students 
                    GROUP BY family_id 
                    HAVING COUNT(1)>1)
ORDER BY family_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...