データが作成された時点で並べ替えられた 2 つの異なるテーブルからデータを表示しようとしています。
データを取得している2つのテーブルは次のとおりです。
アクティブなプロジェクト
+------------+------------+---------+-------+-------------+
| project_id | ts_created | user_id | title | description |
+------------+------------+---------+-------+-------------+
好き
+---------+------------+------------+
| user_id | project_id | ts_created |
+---------+------------+------------+
目的の結果は、これらの列から取得されたすべてのデータが適切に表示され、この列で並べ替えられたものです。
+------------+
| ts_created |
+------------+
これは私が現在使用しているクエリです:
$sql = "SELECT *
FROM (SELECT project_id AS ppid,
ts_created AS pts,
user_id AS puid,
title AS ptitle,
description AS pdesc
FROM active_projects
WHERE user_id = 12)
UNION
(SELECT id AS lid,
user_id AS luid,
project_id AS lpid,
ts_created AS lts
FROM likes
WHERE user_id = 12)";
しかし、それは私が望むようには機能していません。何が起こっているのかをデバッグしようとしていますが、今のところ、実際にはデータを取得していないと言っているだけです。
JOIN と UNION について調べていますが、このクエリにどちらを使用すればよいかわかりません。どんな支援も大歓迎です。
編集: @Samuel の回答を使用して、クエリが正しく表示されるようになりました。しかし、現在、結果は行ごとに 3 回表示されています。私はクエリの最後にこれをやっています:
$act = mysql_query($sql);
次に、結果をエコーアウトするときに、次のように while ループを使用しています。
while ($t = mysql_fetch_row($act)) {
echo $t[1];
}
各行が 3 回表示される理由について何か考えはありますか?