51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Family table query mysql

英文:

Family table query mysql

问题 {#heading}

1.获取Fay的阿姨

SELECT 阿姨.*
FROM 家庭 AS 阿姨
JOIN 家庭 AS 父母 ON 阿姨.parent_id = 父母.id
JOIN 家庭 AS 表兄弟姐妹 ON 父母.id = 表兄弟姐妹.parent_id
WHERE 表兄弟姐妹.id = 7 AND 阿姨.gender = 'female';

2.获取Hana的堂兄弟(男性)

SELECT 男性堂兄弟.*
FROM 家庭 AS 表兄弟
JOIN 家庭 AS 父母 ON 表兄弟.parent_id = 父母.id
JOIN 家庭 AS 祖父母 ON 父母.parent_id = 祖父母.id
JOIN 家庭 AS 男性堂兄弟 ON 祖父母.id = 男性堂兄弟.parent_id
WHERE 表兄弟.id = 10 AND 男性堂兄弟.gender = 'male';

英文:

I am trying to learn simple SQL with below family table structure, where parent_id is a relation of family.id (same table)

| id | name | gender | parent_id | |:---|:--------|:-------|:----------| | 1 | Adam | male | NULL | | 2 | Alvin | male | 1 | | 3 | Chris | male | 1 | | 4 | Michael | male | 1 | | 5 | Lala | female | 1 | | 6 | Matt | male | 2 | | 7 | Fay | female | 2 | | 8 | Percy | male | 3 | | 9 | Jackson | male | 3 | | 10 | Hana | female | 4 | | 11 | Hani | female | 4 |

I have the following questions that I have not finished and the sql progress that I made

1.Create a query to get the aunt of Fay

SELECT aunt.*
FROM family AS aunt
JOIN family AS parent ON aunt.parent_id = parent.id
JOIN family AS cousin ON parent.id = cousin.parent_id
WHERE cousin.id = 7 AND aunt.gender = 'female';

2.Create a query to get the male cousin of Hana

SELECT male_cousin.*
FROM family AS cousin
JOIN family AS parent ON cousin.parent_id = parent.id
JOIN family AS grandparent ON parent.parent_id = grandparent.id
JOIN family AS male_cousin ON grandparent.id = male_cousin.parent_id
WHERE cousin.id = 10 AND male_cousin.gender = 'male';

I know my query is wrong but that's the extent of my ability at the moment.

答案1 {#1}

得分: 1

应该是:

选择aunt.*
从家庭 作为 aunt
加入家庭 作为 parent 在 aunt.id = parent.parent_id
加入家庭 作为 fay 在 fay.parent_id = parent.id
其中 fay.name = 'Fay' 和 aunt.gender = 'female';

选择male_cousin.*
从家庭 作为 cousin
加入家庭 作为 parent 在 cousin.parent_id = parent.id
加入家庭 作为 hana 在 hana.parent_id = parent.id
加入家庭 作为 male_cousin 在 male_cousin.parent_id = parent.id
其中 hana.name = 'Hana' 和 male_cousin.gender = 'male';

英文:

Should be

SELECT aunt.*
FROM family AS aunt
JOIN family AS parent ON aunt.id = parent.parent_id
JOIN family AS fay ON fay.parent_id = parent.id
WHERE fay.name = 'Fay' AND aunt.gender = 'female';

and

SELECT male_cousin.*
FROM family AS cousin
JOIN family AS parent ON cousin.parent_id = parent.id
JOIN family AS hana ON hana.parent_id = parent.id
JOIN family AS male_cousin ON male_cousin.parent_id = parent.id
WHERE hana.name = 'Hana' AND male_cousin.gender = 'male';

赞(1)
未经允许不得转载:工具盒子 » Family table query mysql