1 つの出力で 3 つの異なるログ テーブルの検索結果を作成しようとしています。この出力は「時間」でソートし、foreach ループでエコーする必要があります。
テーブル
ID | レコード ID | ユーザー ID | 時間 | セクター | 情報
テーブル
ID | ユーザー ID | ip | 時間 | パス | 情報 | メッセージ | レベル
テーブル
ID | req_id | ユーザー | 時間 | 情報 | タイプ | IP
3 つの結果はすべて異なり、ほとんど比較できません...
問題は、結果をどこでどのようにマージするかです...これを1つのクエリだけで処理できるとは思いませんか? JOIN (参照がない) と UNION (列の数が異なる) の選択が間違っている可能性がありますか?
他に選択肢がない場合は、3 つのクエリを作成し、結果の配列をそのようにマージできます
function cmp($a, $b) {
if ($a['time'] == $b['time']) {
return 0;
}
return ($a['time'] < $b['time']) ? -1 : 1;
}
$new_arr = array_merge($result1, $result2, $result3);
uasort($new_arr, 'cmp');