假设我们有一个这样的用户表:
ID | USERNAME | STATUS |
01 | Aname | 1 |
02 | Bname | 1 |
03 | Cname | 2 |
04 | Dname | 1 |
还有另外两个表,其中,对于每个用户,记录用户“拥有”的距离、视频和照片的项目,假设视频表是这样的:
ID | USER | VIDEO |
01 | 01 | aaaa |
02 | 01 | bbbb |
03 | 02 | cccc |
04 | 02 | dddd |
05 | 03 | eeee |
06 | 03 | ffff |
07 | 03 | gggg |
照片也一样:
ID | USER | PHOTO |
01 | 01 | aaaa |
02 | 02 | cccc |
03 | 02 | dddd |
04 | 03 | eeee |
05 | 03 | ffff |
06 | 03 | gggg |
现在,我正在尝试在STATUS
字段上对第一个表的结果进行排序,因此状态为 2 的用户将在结果的末尾(或开头)进行排序,但我想通过以下事实对其他表进行排序他们有或没有视频或照片。实际上,对于状态为 1 的所有用户,我检查他们是否有视频和照片并显示诸如“警告,您没有视频”之类的消息,我还想根据状态和事实对所有用户进行排序他们有没有照片或视频……比如:
SELECT id,username,status,NumOfPhotos,NumOfVideos order by status ASC, numOfPhotos ASC, NumOfVideos DESC
NumOfPhotos
例如,在哪里SELECT COUNT(*) FROM PHOTOS WHERE USER = USERS.ID
那可能吗?这可能在一个声明中吗?