繁体   English   中英

MySQL在PHP中一对多查询

[英]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.

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