回答

收藏

连接多个表以在MySQL中获得NOT EQUAL值

技术问答 技术问答 272 人阅读 | 0 人回复 | 2023-09-12

我已经尝试了三天来解决这个问题了-现在我需要你:-)
! v+ P4 J* N* k" J5 h" u我需要加三个表:9 H, W& e. I* a" j; T
table data        table user           table collectiondata_id | colors  user_id | user_name  collection_id | user_id | data_id----------------  -------------------  ---------------------------------   1    | blue       1    | Brian            1       |    1    |     1   2                                             | red                                                                                                                                                                                                                                                                                                                                      2                                                                                                                                                                                                                                                           | Jason                                                                                                                                                                                                                                                                                                                                          2                                                                                                                                                                                                                                                              |   2    |   3 3 3  3            | green       3                               3                  | Marie             3                               3                     |    1    |    3   4                           | yellow                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |   3    |    2输出是针对用户的。这意味着Brian我不想看到蓝色和绿色,Jason不想看绿色,Marie我不想看到红色。应给出以下输出:8 |# K7 n  i( B) x0 `6 d
for Brian           for Jason             for Marieid | colors         id | colors           id | colors-----------         -----------           -----------2  | red       | blue        | blue4  | yellow                                                    2                                                                                                                                                                                             2                                                             2                                                                                             2                                                                                 2                                                                                                                       | red         | green                    4  | yellow       | yellow这是我目前最好的解决方案:
5 s5 g* [9 p1 }9 U' c( JSELECT     *FROM    data d        INNER JOIN    user u ON u.user_id = d.user_id        LEFT JOIN    collection c ON c.data_id = d.data_idWHERE    c.user_id  '1' OR c.collection_id IS NULL结果是Brian将整理出选择-很好!但是由于Jason我不想看到绿色,所以我还是想Brian选中它。很混乱!. r1 [) v! s: y: e6 x
我希望我或多或少能理解它=)
) r/ C* J7 I. Q# X. \非常感谢所有的帮助和提示!& h' k; R# ]4 b/ p! K0 y
                                                               
8 h+ f2 j- V' v  Z+ g5 S    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则