Chinaunix

标题: 新手关于SELECT 语句的写法 [打印本页]

作者: jiangling_0103    时间: 2016-06-07 13:53
标题: 新手关于SELECT 语句的写法
新手刚开始学习 mysql , 想问下下面的 select 语句应该怎么写的? 多谢了

如下有2张表 bugs 和 profiles , 其中 bugs 中的 assigned_to 和 reporter 外键指向 profiles 表的 userid 主键:

CREATE TABLE `bugs` (
  `bug_id` mediumint(9) NOT NULL AUTO_INCREMENT,
  `assigned_to` mediumint(9) NOT NULL,
  `short_desc` varchar(255) NOT NULL,
  `reporter` mediumint(9) NOT NULL,
  PRIMARY KEY (`bug_id`),
  KEY `bugs_assigned_to_idx` (`assigned_to`),
  KEY `bugs_reporter_idx` (`reporter`),
  CONSTRAINT `fk_bugs_assigned_to_profiles_userid` FOREIGN KEY (`assigned_to`) REFERENCES `profiles` (`userid`) ON UPDATE CASCADE,
  CONSTRAINT `fk_bugs_reporter_profiles_userid` FOREIGN KEY (`reporter`) REFERENCES `profiles` (`userid`) ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=570183 DEFAULT CHARSET=utf8;


CREATE TABLE `profiles` (
  `userid` mediumint(9) NOT NULL AUTO_INCREMENT,
  `login_name` varchar(255) NOT NULL,
  PRIMARY KEY (`userid`),
  UNIQUE KEY `profiles_login_name_idx` (`login_name`),
) ENGINE=InnoDB AUTO_INCREMENT=11226 DEFAULT CHARSET=utf8;



我现在想写一个select语句,获取指定 bug_id 的记录对应的 bug_id , assigned_to , short_desc ,reporter 值,但是assigned_to和reporter想取profiles表中对应 bug_id的用户全名,我应该怎么写的?

我这样写的话可以获取assigned_to对应的用户名
select t1.bug_id,t1.short_desc,t2.login_name from bugs t1 , profiles t2 where t1.bug_id = xxxxxx and t1.assigned_to=t2.userid

如果我要同时获取 assigned_to 和 reporter 对应的用户名应该怎么写啊?

作者: seesea2517    时间: 2016-06-20 11:18
回复 1# jiangling_0103


    两次连接呗,再连一个 profiles t3 嘛,一样操作。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2