2

SQL に問題があります。説明します。

私は2つのテーブルを持っています

アナウンス_ジョブ

お知らせ_教育

下にテーブルのプレビューが表示されます

お知らせ_教育 お知らせ_教育

アナウンス_ジョブ アナウンス_ジョブ

私のデータベース構造はあまり良くないと思います...しかし、遅すぎます! (私のデータ型は忘れてください、実際にはでたらめです)、私は悪い人ですか?

では、どのようにして最後の 5 つのレコードを ORDER BY insert_db_date (この 2 つのテーブルの間) に取得できますか?

-> できない場合、別の解決策はありますか?

前もって感謝します ;)

4

1 に答える 1

1

選択する前に、列に順序を適用する必要があります。つまり、常に最新のエントリをまだ追加していないと仮定します。しかし、後悔するよりは安全であることをお勧めします!

SELECT * FROM announcements_education ORDER BY DESC insert_db_date LIMIT 5;

それぞれ:

SELECT * FROM announcements_job ORDER BY DESC insert_db_date LIMIT 5;

ORDER BYデフォルトでは昇順でソートされるため、降順で並べ替えるように指定する必要があります。このLIMITステートメントは、最初の 5 つのエントリのみを返すようにします。テーブルは最新のエントリ データから順に並べられているため、最新の 5 つだけが表示されます。

アップデート:

私はあなたの質問を少し読み違えました。両方のテーブルでトップ 5 を取得したい場合は、以下のコードが必要です。

(SELECT * FROM announcements_education ORDER BY DESC insert_db_date)
UNION ALL
(SELECT * FROM announcements_job ORDER BY DESC insert_db_date)
LIMIT 5

それが機能することを教えてください!

于 2013-02-05T07:05:06.190 に答える