我试图让表格显示它的全部内容,尽管可能有一些空单元格.该表包含一个小俱乐部的十个可能的职位(即主席,秘书等).每个位置都是指成员表中的成员ID,具体取决于被选为该职位的人员.一个职位可能是空缺的,这正是我想要完成的.结构(简化)如下:
表"成员"
CREATE TABLE members (
id_member INT NOT NULL,
member_name VARCHAR(45),
PRIMARY KEY (id_member));
Run Code Online (Sandbox Code Playgroud)
表"位置"
CREATE TABLE positions (
id_position INT NOT NULL,
position_name VARCHAR(45),
PRIMARY KEY (id_position)
FOREIGN KEY (id_member) REFERENCES members(id_member));
Run Code Online (Sandbox Code Playgroud)
选择语法
SELECT position_name, member_name
FROM members
JOIN positions USING(id_members);
Run Code Online (Sandbox Code Playgroud)
只要在某个位置上有成员但是如果它是空的,那么该行就不会出现.是否有一些方法可以使表位置总是返回每一行,尽管列id_member有空单元格?
期望的结果:
Chariman - Jack Carver
秘书 - Joe Hill
Accounter - NULL
网站管理员 - Joanna Robson
使用LEFT JOIN而是交换tableNames
SELECT position_name, member_name
FROM positions
LEFT JOIN members USING(id_members);
Run Code Online (Sandbox Code Playgroud)
要充分了解联接知识,请访问以下链接: