回答

收藏

SQL一对多关系-如何根据多个属性来选择行?

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

一个MySQL数据库包含两个一对多关系的表:一个用户可以有许多设置:  Z/ I( i0 B( W7 i- w8 N
Users:id    username    password-------------------------- 1    Bob        Alice       abc ...Settings:id   user_id   key     value----------------------------- 1                                                                                                                 color   blue   // Bobs settings... 2  1                 theme   xy 3   1                                                           size     4  2                                             size    5      // Alices settings...问题:如何找到所有用户color == blue AND size == 5?
& ?$ r- j; ^' s# g- h3 F使用a LEFT JOIN,找到具有属性的用户没有问题:/ j3 t& T9 j- g9 d
SELECT users.id FROM users LEFT JOIN settings ON users.id = settings.user_id WHERE settings.key = 'color' AND settings.value = 'blue'但是,一次搜索两个设置不起作用吗?: L( |9 Y( _; f7 M2 }$ O  l
有可能用决这个问题有可能吗?查询这些数据最有效的方法是什么?2 ?9 x0 j/ n) g# c
                                                                8 ]7 e" A# I6 i# k
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则