假设我有以下表格
GUYS
| ID |
|:-----------|
| 1 |
| 2 |
| 3 |
衬衫
| ID | GUYS_ID | color |
|:-----------|------------:|:------------:|
| 1 | 1 | red
| 2 | 1 | red
| 3 | 3 | red
| 4 | 3 | red
| 5 | 3 | red
我使用此查询加入这些表
SELECT a.id, b.color
FROM GUYS a
LEFT JOIN SHIRT b
ON a.ID=b.GUYS_ID
WHERE b.color='red'
ORDER BY a.id ASC;
这只获取ID为ON SHIRT的GUYS
想知道是否有可能获取所有与SHIRT无关的GUYS?
实现这样的结果,
| ID | color |
|:-----------|------------:|
| 1 | red |
| 1 | red |
| 2 | |
| 3 | red |
| 3 | red |
| 3 | red |
答案 0 :(得分:5)
你的WHERE是严格的:
没有衬衫的男士不能穿红色衬衫; - )
SELECT a.id, b.color
FROM GUYS a
LEFT JOIN SHIRT b ON a.ID=b.GUYS_ID
WHERE b.color IS NULL OR b.color='red'
ORDER BY a.id ASC
答案 1 :(得分:3)
你对颜色的条件实际上是一个“加入条件”而不是“过滤器” - “只要他们是红色的,就给我所有人加入他们的衬衫”:
namespace3 = root22.xpath('.//xt:envValueType', namespaces=NSMAP)