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 嘛,一样操作。
页: [1]
查看完整版本: 新手关于SELECT 语句的写法