我有一张员工桌
id int(11)
names varchar(120)
family_names varchar(100)
nickname varchar(100)
以及谁在工作的表格
id int(11)
personid int(11)
titleid int(11)
typeid int(11)
at_work datetime
status int(11)
我的问题是我需要生成一份报告,在其中检查谁在工作并显示姓名、姓氏和头衔。由于人们是通过昵称来称呼的,我需要先检查昵称是否存在,所以我在这个网站上找到了这个例子
SELECT IF(LENGTH(nickname)>0, nickname, names) FROM staff_list
我将获得昵称或名称,但这并不能解决我的请求,因为我需要搜索 mu who_is_at_work 表,然后让工作人员在工作并创建该列表。
是否可以在选择中进行选择以获取我需要的三个字段
昵称/姓名、姓氏、头衔
过了一会儿,我想出了如何去做。
我找到了解决方案,感谢发布。这就是我最终要做的。
SELECT p.id AS ID,
IF(LENGTH(p.nickname)>0, p.nickname, p.names) AS 'Names/Nickname',
p.family_names AS 'Family name',
r.rank AS 'Rank'
FROM atworklist AS who
LEFT JOIN stafflist as p on p.id = who.personid
LEFT JOIN title AS r ON r.id = p.titleid
where who.shipid= 2 and who.status in (2,3)
ORDER BY r.sortorder
对我来说就像一个魅力