连接多个表以在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 解决方案: |
|
|
|
|
|