我有两个表 A 和 B。我想从 A 返回所有记录,并且只从 B 匹配。我可以为此使用左连接。但是加入后,我想根据同一张表中的标志返回记录。
表 A: | Col1 | Col2 | |--------|--------| | 123 | 12 | | 第456章 34 | | 第789章 56 | 表 B: | Col1 | Col2 | Col3 | Col4 | Col5 | |-----|------|------|------|------| | 123 | 12 | 空 | 我 | 1 | | 第456章 34 | 空 | E | 1 | | 111 | 98 | 空 | 我 | 1 | | 222 | 99 | 空 | E | 1 | | 123 | 12 | AB | 空 | 2 | | 第456章 34 | 光盘 | 空 | 2 | | 123 | 12 | 英孚 | 空 | 2 | | 111 | 98 | 生长激素 | 空 | 2 | | 222 | 99 | IJ | 空 | 2 |
左加入 A 和 B 后,结果将如下所示:
| Col1 | Col2 | Col3 | Col4 | Col5 | |-----|------|------|------|------| | 123 | 12 | 空 | 我 | 1 | | 第456章 34 | 空 | E | 1 | | 123 | 12 | AB | 空 | 2 | | 第456章 34 | 光盘 | 空 | 2 | | 123 | 12 | 英孚 | 空 | 2 | | 第789章 56 | 空 | 空 | 空 |
Col5 中的 1 和 2 值告诉是否应该填充 Col4 或 Col3。1 用于 Col4,2 用于 Col3。
我想返回 Col4 中“I”的所有记录(但不包括具有“I”的记录),如下所示:
| Col1 | Col2 | Col3 | Col4 | Col5 |
|------|------|------|--------|------|
| 123 | 12 | AB | (null) | 2 |
| 123 | 12 | EF | (null) | 2 |
我还想返回 col4 中“E”的记录(再次排除具有“E”的记录),但返回 Col3 中除一个以外的所有值。在这种情况下光盘。看起来像这样:
| Col1 | Col2 | Col3 | Col4 | Col5 | |--------|------|------|--------|------| | 第456章 34 | AB | (空) | 2 | | 第456章 34 | 英孚 | (空) | 2 | | 第456章 34 | 生长激素 | (空) | 2 | | 第456章 34 | IJ | (空) | 2 |
有人可以建议如何在 SQL 中处理这个问题吗?