[英]mysql one to many query in php
我试图检索父记录,然后从MySQL DB中检索PHP中该记录的匹配子记录。
父表
ISN|ParentName|JoinedDate
1 |John |01-01-2010
2 |Sam |02-02-2010
3 |Sheila |13-08-2012
子表
ISN|ChildName|JoinDate
1 |Mary |10-10-2010
1 |Tamsin |11-10-2010
3 |Kyle |11-12-2010
查询结果应如下所示:
1|John |Parent|01-01-2010
1|Mary |Child |10-10-2010
1|Tamsin|Child |11-10-2010
2|Sam |Parent|02-02-2010
3|Sheila|Parent|13-08-2012
3|Kyle |Child |11-12-2010
我尝试使用外部联接和联接,使用临时表来组合和查询结果,但我似乎没有找到一种行之有效的方法。 我该如何实现?
只需使用UNION
即可合并两个表中的行。 列名必须相同,这就是为什么我在child's
表中使用alias
的原因。
SELECT ISN, ParentName AS PersonName, 'Parent' AS `Status`, JoinedDate
FROM parentTable
UNION
SELECT ISN, ChildName AS PersonName, 'Child' AS `Status`, JoinDate AS JoinedDate
FROM childTable
ORDER BY ISN, `Status` DESC
使用“ UNION”
select ISN, ParentName, 'Parent' as 'Filiation', JoinedDate from ParentTable
UNION
select ISN, ChildName, 'Child' as 'Filiation', JoinDate from ChildTable
使用以下查询:
SELECT ISN, ParentName, 'Parent', JoinedDate
UNION SELECT ISN, ChildName, 'Child', JoinDate`
但是最好在具有附加字段类型的表中保存有关父母和子女的数据(例如:0-父母,1-子女)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.