簡體   English   中英

PHP,PDO,MYSQL - 如何通過時間戳從兩個不同的表中排序行?

[英]PHP, PDO, MYSQL - how to order rows from two different tables by timestamp?

我們有2個不同的表,具有這樣的結構:

dogs_table:

  • ID
  • dog_posts
  • dog_date

cats_table:

  • ID
  • cat_posts
  • cat_date

在瀏覽器中,我想在這樣的時間線中顯示來自狗和貓的帖子: 時間線圖像
因此dog_posts應位於左側,cat_posts位於右側。 我已經花了幾天時間來解決這個問題,很明顯,如果我想以適當的方式展示帖子,我必須按照提交的日期將兩個表格和顯示帖子結合起來。

這是一個例子:

'SELECT * FROM dogs_table, cats_table ORDER BY dogs_table.dog_date, cats_table.cat_date DESC';

當我試圖在瀏覽器中顯示值時,它們看起來非常混亂,崩潰了。 此外,我嘗試使用幾種UNION方式,但它也無法正常工作。 我正在尋求正確查詢和正確方法的幫助,以便在提交日期之前將表格和展示位置組合起來,如果有可能的話。

您可以使用UNION組合兩個表並使用ORDER BY子句對結果進行排序。

以下MySQL查詢應該獲得您要實現的結果。

SELECT cat_posts as posts, cat_date as date, 'cats' as type from cats_table
UNION
SELECT dog_posts as posts, dog_date as date, 'dogs' as type from dogs_table
ORDER BY date desc

查詢單個表時,您將為每個列(帖子和日期)使用別名,以便您可以在日期列上使用ORDER BY。

您還需要確定哪些行來自dogs_table表,哪些行來自cats_table表。

因此,您將添加一個名為type的虛擬列,並分別為dogs_tablecats_table將其值設置為

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM