0

我正在尝试检索父记录,然后从 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

我尝试使用外连接和连接,使用临时表来组合和查询结果我似乎没有找到一种正确的方法。我怎样才能做到这一点?

4

3 回答 3

1

只需使用UNION以组合两个表中的行。列名必须相同,这就是我aliaschild's表中使用的原因。

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
于 2012-08-13T13:42:21.897 回答
0

使用“联合”

select ISN, ParentName, 'Parent' as 'Filiation', JoinedDate from ParentTable

UNION

select ISN, ChildName, 'Child' as 'Filiation', JoinDate from ChildTable
于 2012-08-13T13:43:22.810 回答
0

使用以下查询:

SELECT ISN, ParentName, 'Parent', JoinedDate
UNION SELECT ISN, ChildName, 'Child', JoinDate`

但最好将有关父母和孩子的数据保存在具有附加字段类型的单个表中(例如:0 - 父母,1 - 孩子)。

于 2012-08-13T13:43:37.367 回答