0

親レコードを取得してから、MySQLDBからPHPでそのレコードに一致する子レコードを取得しようとしています。

ParentTable

ISN|ParentName|JoinedDate
1  |John      |01-01-2010
2  |Sam       |02-02-2010
3  |Sheila    |13-08-2012

ChildTable

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

外部結合と結合を使用して、一時テーブルを使用して結合し、結果をクエリしてみましたが、正しく機能する方法が1つ見つからないようです。どうすればこれを達成できますか?

4

3 に答える 3

1

UNION両方のテーブルの行を結合するために使用するだけです。列名は同じでなければならないので、テーブルで使用aliasしました。child'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 に答える