连接3个表而没有嵌套查询

时间:2012-04-19 17:16:24

标签: mysql

我有以下表格:

   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

我需要做以下事情:

显示表格订单中的所有记录 显示UserPhone 显示用户名 根据日期(来自订单)订购结果

如果没有Username与订单链接,我应该在结果中显示null。与电话相同。 我想在没有嵌套查询的情况下这样做......

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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