+ -
当前位置:首页 → 问答吧 → 表联接

表联接

时间:2011-07-23

来源:互联网

我有两个表 A表B表
B表有两个字段fromuid 和touid 都关联到A表的uid

我想取出B表数据并且fromuid 和touid左联接到A表 请问SQL语句该怎么写?

作者: Brokenfango   发布时间: 2011-07-23

select *
from b left joni a on b.fromuid=a.fromuid and b.touid=a.touid

作者: ACMAIN_CHM   发布时间: 2011-07-23


  建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
  参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
   
  1. 你的 create table xxx .. 语句
  2. 你的 insert into xxx ... 语句
  3. 结果是什么样,(并给以简单的算法描述)
  4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
   
  这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

 

作者: ACMAIN_CHM   发布时间: 2011-07-23

回楼上
你可能误会我意思了
简化A表(members)结构:
uid(int 自增) username(char 30) face(char 20)

简化B表(comments)结构:
cid(int 自增) fromuid(int) touid(int) content(varchar 1000)

我想取出B表数据并且fromuid touid关联到A表的用户信息






作者: Brokenfango   发布时间: 2011-07-23

贴出你的CREATE TABLE语句,INSERT 语句。

作者: ACMAIN_CHM   发布时间: 2011-07-23


--
-- 表的结构 `members`
--

CREATE TABLE IF NOT EXISTS `members` (
  `uid` int(12) NOT NULL AUTO_INCREMENT,
  `username` char(30) NOT NULL,
  `face` char(20) NOT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- 转存表中的数据 `members`
--

INSERT INTO `members` (`uid`, `username`, `face`) VALUES
(1, 'sky', 'a.jpg'),
(2, 'testu', 'b.jpg'),
(3, 'smile', 'c.jpg'),
(4, 'colorful', 'd.jpg');




--
-- 表的结构 `comments`
--

CREATE TABLE IF NOT EXISTS `comments` (
  `cid` int(11) NOT NULL AUTO_INCREMENT,
  `fromuid` int(11) NOT NULL DEFAULT '0',
  `touid` int(11) NOT NULL DEFAULT '0',
  `content` varchar(1000) NOT NULL,
  PRIMARY KEY (`cid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- 转存表中的数据 `comments`
--

INSERT INTO `comments` (`cid`, `fromuid`, `touid`, `content`) VALUES
(1, 1, 2, 'aaaaaaaaaaaa'),
(2, 2, 3, 'bbbbbbbbbbbbbbbbbbbbb');

目的是要取出comments表的数据并且fromuid touid联接到members表



INSERT INTO `comments` (`cid`, `fromuid`, `touid`, `content`) VALUES
(1, 1, 2, 'aaaaaaaaaaaa'),
(2, 2, 3, 'bbbbbbbbbbbbbbbbbbbbb');

作者: Brokenfango   发布时间: 2011-07-23

上面回复最后面的INSERT INTO `comments` (`cid`, `fromuid`, `touid`, `content`) VALUES
(1, 1, 2, 'aaaaaaaaaaaa'),
(2, 2, 3, 'bbbbbbbbbbbbbbbbbbbbb');
是笔误 不用看

作者: Brokenfango   发布时间: 2011-07-23

热门下载

更多