-1

我有以下表格:

   CREATE TABLE `orders` (
   `ID` varchar(5) NOT NULL,
   `IDUserProfile` int(11),
   `IDRestaurant` int(11),
   `Date` int(11),
   PRIMARY KEY  (`ID`)
   ) ENGINE=MyISAM DEFAULT CHARSET=latin1  

   CREATE TABLE `userprofiles` (
   `ID` int(11) NOT NULL auto_increment,
   `IDUser` int(11) NOT NULL,
   `Name` varchar(64),
   `Phone` varchar(64),
   `Address` varchar(255),
   PRIMARY KEY  (`ID`)
   ) ENGINE=InnoDB DEFAULT CHARSET=latin1

   CREATE TABLE `users` (
   `ID` int(11) NOT NULL auto_increment,
   `Username` varchar(64) NOT NULL,
   `Password` varchar(33) NOT NULL,
   PRIMARY KEY  (`ID`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1

我需要执行以下操作:

显示表订单中的所有记录 显示用户电话 显示用户名 根据日期对结果进行排序(来自订单)

如果没有用户名与订单链接,我应该在结果中显示 null。手机也一样。我想在没有嵌套查询的情况下做到这一点......

任何帮助将不胜感激。

4

1 回答 1

0
select o.*,
    up.Phone,
    u.Username
from orders o
left outer join userprofiles up on o.IDUserProfile = up.ID
left outer join users u on up.IDUser = u.ID
order by o.Date
于 2012-04-19T17:21:11.073 回答