简体   繁体   中英

how to get data from both table with join

Table 1 : Main_Family_Member

ID | Name
1  | Mahesh
2  | Rahul
3  | Jay

Table 2 : Family_Members

ID | MainMember | Name
1  | 1          | 'Arun'
2  | 1          | 'Nitin'
3  | 2          | 'Pratik'

Want Result :

Name
Mahesh
Arun
Nitin
Rahul
Pratik

You can achieve this by doing a UNION ALL of the two tables along with proper ordering. Note that it is necessary to union the two tables joined, because we need to know whether a main family member has any members. In case he does not have any member, your sample output implies that you don't want to display that main family member at all.

SELECT t.Name
FROM
(
    SELECT DISTINCT t1.ID, t1.Name, 0 AS position
    FROM
    (
        SELECT t1.ID, t1.Name
        FROM Main_Family_Member t1
        INNER JOIN Family_Members t2
            ON t1.ID = t2.MainMember
        WHERE t2.ID IS NOT NULL
    ) t1
    UNION ALL
    SELECT t2.ID, t2.Name, 1 AS position
    FROM
    (
        SELECT t2.MainMember AS ID, t2.Name
        FROM Main_Family_Member t1
        INNER JOIN Family_Members t2
            ON t1.ID = t2.MainMember
        WHERE t2.ID IS NOT NULL
    ) t2
    ORDER BY ID, position, Name
) t

Demo here:

SQLFiddle

SELECT Main_Family_Member.Name, Family_Members.Name
FROM Main_Family_Member
INNER JOIN Family_Members
ON Main_Family_Member.ID = Main_Family_Member.MainMember;

SELECT Main_Family_Member.Name, Family_Members.Name FROM Main_Family_Member INNER JOIN Family_Members ON Main_Family_Member.ID = Main_Family_Member.MainMember;

You will need to perform a INNER JOIN on the two tables. This would return all the rows in the first table that meet the conditions plus all rows on the second table that join with the first table on the unique fields. SELECT Main_Family_Member.Name , Family_Members.Name FROM Main_Family_Member INNER JOIN Family_Members ON Main_Family_Member.ID = Family_Members.MainMember WHERE Main_Family_Member.ID = 1 OR Main_Family_Member.ID = 2

SELECT Main_Family_Member.Name,Family_Members.Name FROM Main_Family_Member 
INNER JOIN Family_Members ON Main_Family_Member.ID=Family_Members.MainMember

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM