父表
+====+===========+
| id | firstname |
+====+===========+
| 1 | abc |
+----+-----------+
| 2 | bcd |
+----+-----------+
| 3 | cde |
+----+-----------+
学生关系表
+==========+==========+===========+
| relation | parentid | studentid |
+==========+==========+===========+
| father | 1 | s0001 |
+----------+----------+-----------+
| mother | 2 | s0001 |
+----------+----------+-----------+
| father | 3 | s0002 |
+----------+----------+-----------+
学生表
+=======+===========+==========+=========+======+
| id | firstname | lastname | address | sex |
+=======+===========+==========+=========+======+
| s0001 | shdj | khb | jxx | male |
+-------+-----------+----------+---------+------+
如果您可以帮我创建一个将返回studentid
,name
,father name
,mother name
,sex
,{{ 1}}。
答案 0 :(得分:1)
根据您发布的内容,然后在评论中更新,我认为这应该适合您。我相信具有更高级SQL技能的人可以发布更优雅的方式来执行此操作。但这就是我想出来的:
SELECT DISTINCT cte.studentid
,studentFirstName
,studentLastName
,father.fatherFirstName
,mother.motherFirstName
,sex
,address
FROM cte
LEFT JOIN father ON cte.studentid = father.studentid
LEFT JOIN mother ON cte.studentid = mother.studentid
以下是一个学生(杰夫琼斯)有两个父亲的例子(假设其中一个是继父):
这里有一些建议:
- 学习SQL语法基础知识(任何类型的MySQL,T-SQL等)
- 了解FROM and JOIN
- 在此处发布您的问题时,表格示例应该有更好的测试数据。 “asdfkj”,“shdsf”,“Asdjkfdjkf”非常难以 用来测试代码,因为没有你的上下文 看着。我意识到你只是发布一个例子和上下文 行的部分无关紧要,但它只是更容易 问题回答,并没有吓跑想要的人 回答你的问题。
醇>
以下是您可以使用的DEMO,其中包含您提及的字段中的合理数据。