Mysql加入和订购

时间:2010-09-08 14:01:35

标签: mysql join sql-order-by

我有3个表具有相同的列,但数据不同(存款,取款,转账)

  

创建表,如果不是EXISTS   withdrawalsid int(11)NOT   NULL auto_increment,user   varchar(12)默认为NULL,amount   double(12,2)默认为NULL,date   timestamp NULL默认值   CURRENT_TIMESTAMP,time   varchar(50)默认为NULL,type   varchar(50)默认为NULL,status   varchar(1)默认为'0',notes PRIMARY KEY   (id))ENGINE = MyISAM DEFAULT   CHARSET = latin1 AUTO_INCREMENT = 1;

我想将所有3个表合并到1个表中,并按所有日期对它们进行排序,并仅在user ='$ user'

时显示一行
Example if table 1 has this data
id  user    amount  date        time    type            status          notes
2   vveer   142.00  2010-04-01 03:05:01 PayPal              2          deposit
3   test11  116.00  2010-04-01 10:33:23 PayPal              2          deposit

Example if table 2 has this data
id  user    amount  date        time    type            status          notes
3   vveer   142.00  2009-04-01 03:05:01 PayPal              2          withdraw
7   test11  112.00  2010-04-12 10:33:23 PayPal              2          withdraw

Example if table 3 has this data
id  user    amount  date        time    type            status          notes
5   test11  133.00  2010-03-01 10:33:23 PayPal              2          transfer
7   test11  123.00  2010-02-01 10:33:23 PayPal              2          transfer

I want to show all data for user test11 ordered by dates(is like putting all the dates together and ordering by 1 date column ) .
3   test11  112.00  2010-04-12 10:33:23 PayPal              2          withdraw
7   test11  116.00  2010-04-01 10:33:23 PayPal              2          deposit
5   test11  133.00  2010-03-01 10:33:23 PayPal              2          transfer
5   test11  123.00  2010-02-01 10:33:23 PayPal              2          transfer

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,这个案例就是UNION运算符的设计目的。有关详细信息,请参阅http://www.w3schools.com/sql/sql_union.asp