This topic created in 1298 days ago, the information mentioned may be changed or developed.
```
SELECT A.ItemId, Description, CreatedAt, B.GroupTitle FROM items A, groups B WHERE A.GroupId = B.GroupId AND UserId = 1 ORDER BY ItemId
```
这个查询会导致如果 A 的 GroupId 为 NULL ,A 这条记录就会被忽略掉。我想要的效果是该记录 GroupTitle 变成 NULL 或者空字符串,剩下的字段都在,研究了很久都没成功。
5 replies • 2022-11-04 10:59:33 +08:00
 |
|
1
PendingOni Nov 4, 2022 1
A 去 left join B? ```SQL SELECT A.ItemId, Description, CreatedAt, B.GroupTitle FROM items A left join groups B on A.GroupId = B.GroupId WHERE UserId = 1 ORDER BY ItemId ```
|
 |
|
2
kkwa56188 Nov 4, 2022 1
-- 也可以用 子查询. 这里用了个 max()是怕 B.GroupId 不唯一 SELECT A.ItemId, A.Description, A.CreatedAt , ( select max(B.GroupTitle) from groups B WHERE B.GroupId = A.GroupId ) FROM items A AND A.UserId = 1 ORDER BY A.ItemId;
|
 |
|
3
akira Nov 4, 2022 1
` SELECT A.ItemId, A.Description, A.CreatedAt, B.GroupTitle FROM items A left join groups B on A.GroupId = B.GroupId WHERE 1=1 AND UserId = 1 ORDER BY ItemId `
|
 |
|
4
xuelu520 Nov 4, 2022 1
left join 就行。 楼主可以去看看 left/right/inner 几种的区别,几种 join 用的还是很多的。
|