スタッフテーブルがあります
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テーブルを検索してから、スタッフを職場に配置してそのリストを作成する必要があるため、要求は解決されません。
選択内で選択を実行して、必要な3つのフィールドを取得することは可能ですか?
ニックネーム/名前、家族名、タイトル
しばらくして、私はそれを行う方法を理解しました。
投稿してくれてありがとう、解決策を見つけました。これが私がやったことです。
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
私にとっては魅力のように機能します