スタッフテーブルがあります
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
私にとっては魅力のように機能します