我有两个表,purchase_event_tickets和membership_purchases,两个表都跟踪客户为活动门票购买或会员续订付款所做的付款。从理论上讲,这是表格的外观:
Membership_purchases表:
order_id | total_amount | date_of_purchase | memberid |
2 | 392.42 | 2015-09-23 9:30:23 | 23 |
3 | 423.23 | 2016-09-12 6:23:12 | 49 |
Purchased_event_tickets表:
order_id | total_amount | purchase_date | memberid |
7 | 392.42 | 2014-09-23 9:10:23 | 23 |
1 | 423.23 | 2013-09-12 7:23:12 | 49 |
我想我可以使用以下查询使用以下代码从两个表中提取所有4行:
SELECT *
FROM purchased_event_tickets, membership_purchases
但是,我希望在购买日期之前订购这四行,而且我不确定如何从两张桌子上拉下来。
我想我会寻找以下内容:
SELECT * FROM purchased_event_tickets, membership_purchases ORDER BY purchase_date AND date_of_purchase DESC
我不确定该查询是否可行,但如果确实如此,它将按以下顺序返回行:
order_id | total_amount | date | memberid |
3 | 423.23 | 2016-09-12 6:23:12 | 49 |
2 | 392.42 | 2015-09-23 9:30:23 | 23 |
7 | 392.42 | 2014-09-23 9:10:23 | 23 |
1 | 423.23 | 2013-09-12 7:23:12 | 49 |
有谁知道如何获得这种类型的订购?
答案 0 :(得分:1)
我认为你想要union all
,而不是join
:
SELECT order_id, total_amount, date_of_purchase as date, memberid
FROM purchased_event_tickets
UNION ALL
SELECT order_id, total_amount, purchase_date as date, memberid
FROM membership_purchases mp
ORDER BY date DESC;