finished_events と flagged_events の 2 つのテーブルをクエリしようとしています。まず第一に、company_id に関連するすべてが必要なので、
SELECT *
FROM finished_events
WHERE company_id=$id
ORDER by schedule, timestamp
次に、これを次のように変更しました。
SELECT * FROM finished_events
INNER JOIN flagged_events
ON finished_events.company_id=flagged_events.company_id
WHERE finished_events.company_id=$id
ORDER by finished_events.schedule, finished_events.timestamp
FULL JOIN、LEFT JOIN、および RIGHT JOIN を使用してみましたが、すべて失敗しました。具体的には、次のコードを組み合わせたものを取得したいと考えています。
$sql = "SELECT *
FROM finished_events
WHERE company_id=$id
ORDER by schedule, time_stamp";
$flagged_sql = "SELECT *
FROM flagged_events
WHERE company_id=$id
ORDER by schedule, time_stamp";
テーブルは少し異なるため、UNION はここでは機能しません。ダミーのデータベース エントリを投稿できますが、両方のテーブルのすべてが必要なため、あまり役に立ちません。テーブル間の 2 つのリンクは、company_id 列とスケジュール列です。基本的に、舞台裏で行われているのは、タイムスタンプが別のテーブルに入れられ、それを処理して finished_events または flagged_events にすることです。フラグが設定されたイベントは、終了するイベントになるまで、ユーザーが何かを行う必要があります。したがって、このスクリプトは GUI 用のデータを生成しているため、両方のテーブルにクエリを実行し、顧客の詳細の連想配列を作成してから (これら 2 つのテーブルから) イベントの配列を作成する必要があります。したがって、assoc_array の作成は問題ありません。このクエリを取得して、すべてのイベントを吐き出し、正しく並べ替えるだけです。
EDIT SQL Fiddle: http://sqlfiddle.com/#!2/d4c30/1 これでほぼ修正されますが、完全には修正されません。下部にエントリが繰り返されます。