左连接子查询返回 null

Left join with subqueries returning null

我遇到了一些我不知道如何解决的问题。有 3 个 Tables 位置,模型,User_Likes。我想在一些国家和国家的城市获得最喜欢的模型。

Table 地点

Loc_ID, Top_ID, Name, Perma

Table 型号

Model_ID, Phone, Loc_ID

Table User_Likes

Model_ID, User_ID, Date

示例数据:

地点:

1 | NULL | USA      | usa
2 | NULL | Germany  | germany
3 | 1    | New York | new-york
4 | NULL | Rusia    | rusia

型号:

Seda    |   11  |   1
Zelda   |   33  |   2
Dilara  |   22  |   3

User_Likes

Seda    |   1   |   0
Seda    |   2   |   0
Zelda   |   1   |   0
Dilara  |   1   |   0

我的查询

SELECT U.Model_ID, M.Loc_ID, M.Name, M.Top_ID, M.Perma, COUNT(*) FROM User_Likes as U  
    LEFT JOIN ( SELECT Model.ID, Model.Loc_ID, Yer.Name, Yer.Top_ID, Yer.Perma From Model
        LEFT JOIN (SELECT Locations.Loc_ID, Locations.Name, Locations.Top_ID, Locations.Perma FROM Locations WHERE Locations.Loc_ID = ? OR Locations.Top_ID = ? ) as Yer ON Model.Loc_ID = Yer.Loc_ID ) 
        as M  ON M.ID = U.Model_ID
GROUP BY U.Model_ID

结果:

? = 1

Seda    |  1    |   USA         |   NULL    | usa | 2
Zelde   |  3    |   New York    |   1       | new-york | 2

这部分没问题,但问题从这里开始

? = 4
Seda    |  1    |   NULL        |   NULL    | NULL | 2
Zelde   |  3    |   NULL    |   NULL        | NULL | 2

这里的结果需要为空

谢谢,

试试这个查询你不需要那些内部 select 查询

SELECT U.Model_ID,
 M.Loc_ID,
 M.Name,
 M.Top_ID,
 M.Perma, 
COUNT(*) FROM User_Likes as U  
    LEFT JOIN  Model M ON M.ID = U.Model_ID
        LEFT JOIN Locations L ON M.Loc_ID = L.Loc_ID WHERE L.Loc_ID = ? OR L.Ust_ID = ? GROUP BY U.Model_ID