日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

php mysql 双条件排序,PHP-MySQL联合查询,按2个变量排序

發布時間:2023/12/19 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php mysql 双条件排序,PHP-MySQL联合查询,按2个变量排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

每個表(表1和表2)具有其自己的DATETIME字段.

我正在嘗試捕獲兩個表的ID,并按其DATETIME字段對其進行排序.

例:

Table 1 Table 2

------------ -------------

id | datetime1 id | table1id | datetime2

------------------------ -----------------------

1 | 2014-09-21 20:31:26 1 | 2 | 2014-09-21 20:31:29

2 | 2014-09-21 20:31:27 2 | 3 | 2014-09-21 20:31:30

3 | 2014-09-21 20:31:28

Table 3

------------

id | user

------------------------

2 | phil

3 | nathalie

我的輸出未通過以下查詢正確排序:

SELECT *

FROM (

SELECT

1 AS selection,

table1.id, table1.datetime1,

table2.datetime2

table3.user

FROM Table1

LEFT OUTER JOIN table2

ON table1.id = table2.table1id

LEFT OUTER JOIN table3

ON table1.id = table3.id

UNION ALL

SELECT

2 AS selection,

table1.id, table1.datetime1,

table2.datetime2

table3.user

FROM Table1

INNER JOIN table2

ON table1.id = table2.table1id

INNER JOIN table3

ON table1.id = table3.id

) AS query

ORDER BY table1.datetime1 DESC, table2.datetime2 DESC

所需數據:

從表2 id:2,1,

從表1 id:3,2,1

因此:2、1、3、2、1

編輯

對于可能要處理冗長而復雜的MySQL請求的人們,請在PhpmyAdmin中嘗試一下!它會告訴您錯誤!

編輯

解決方法:

您真正需要做的是更仔細地考慮架構.考慮將日期時間列命名為相同的名稱,然后運行如下查詢-http://sqlfiddle.com/#!2/a3b4c/7/0

SELECT selection, id, datetimefoo, user FROM (

SELECT

1 AS selection,

table1.id, table1.datetimefoo,

table3.user

FROM table1

LEFT OUTER JOIN table2

ON table1.id = table2.table1id

LEFT OUTER JOIN table3

ON table1.id = table3.id

UNION

SELECT

2 AS selection,

table1.id, table1.datetimefoo,

table3.user

FROM table1

INNER JOIN table2

ON table1.id = table2.table1id

INNER JOIN table3

ON table1.id = table3.id

) AS T2

ORDER BY datetimefoo DESC

在SQL提琴中,這會產生與您要查找的結果更接近的結果.我仍然不確定為什么您需要在第二個查詢上使用INNER JOINS-在這里您不需要做什么.

SELECT * FROM (

SELECT

1 AS selection,

table1.id, table1.datetimefoo AS sort_date, -- alias on first table's date

table2.datetimebar,

table3.user

FROM table1

LEFT OUTER JOIN table2

ON table1.id = table2.table1id

LEFT OUTER JOIN table3

ON table1.id = table3.id

UNION

SELECT

2 AS selection,

table1.id, table1.datetimefoo,

table2.datetimebar AS sort_date, -- alias on second table's date

table3.user

FROM table1

INNER JOIN table2

ON table1.id = table2.table1id

INNER JOIN table3

ON table1.id = table3.id

) AS T2

ORDER BY sort_date DESC

標簽:php,sql,mysql

來源: https://codeday.me/bug/20191012/1898765.html

總結

以上是生活随笔為你收集整理的php mysql 双条件排序,PHP-MySQL联合查询,按2个变量排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。