鉴于,以下表格:
genes[, colnames(genes) %in% phenodf$ID]
我希望得到以下结果:
+--------------+
| CLASSES |
+==============+
| name | room |
+------+-------+
| 1A | A1.01 |
| 1B | NULL |
| 1C | A1.03 |
+------+-------+
+-------+
| ROOMS |
+=======+
| id |
+-------+
| A1.01 |
| A1.02 |
| A1.03 |
+-------+
如何使用外部加入完成此操作?
答案 0 :(得分:1)
以下查询完全符合要求:
+--------------+
| UNUSED ROOMS |
+==============+
| id |
+--------------+
| A1.02 |
+--------------+
试着解释这里发生的事情:
在SELECT rooms.*
FROM rooms
LEFT JOIN classes ON rooms.id = classes.room
WHERE
classes.room IS NULL;
上左加入classes
后,您会得到以下结果:
rooms
由于Left Join返回左表(+--------------------------------------------+
| LEFT JOINED |
+============================================+
| rooms.id | classes.name | classes.room |
+-------------+--------------+---------------+
| A1.01 | 1A | A1.01 |
| A1.02 | NULL | NULL |
| A1.03 | 1C | A1.03 |
+-------------+--------------+---------------+
)的所有记录,即使rooms
与rooms.id
不匹配,因为后者为null,仍会返回classes.room
列。请注意rooms
也为空,因为记录不匹配。我知道这对初学者来说有点混乱。 (就像我一样,我只想分享我的经历。抱歉听起来有些困惑。)
正如您所看到的,从这里需要完成的所有操作就是过滤掉classes.name
,其中classes
为空。
room