Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询帮助->多个WHERE子句?_Mysql_Sql - Fatal编程技术网

MySQL查询帮助->多个WHERE子句?

MySQL查询帮助->多个WHERE子句?,mysql,sql,Mysql,Sql,我有如下所示的数据库表 我想做的是通过代理id获取配色方案的所有记录,其中配色方案的配色方案中,配色方案1、配色方案2、配色方案3、配色方案4、配色方案5与用户的用户配色方案1、用户配色方案2或用户配色方案3的任何条目匹配 基本上,用户是由代理注册的,然后指定他们喜欢的颜色。商业用户自己注册的配色方案,决定了他们适合什么颜色。我需要找到,对于某个特定的代理商,是否有任何配色方案的颜色适合用户选择的任何颜色 ---------------------- agents ---------------

我有如下所示的数据库表

我想做的是通过代理id获取配色方案的所有记录,其中配色方案的配色方案中,配色方案1、配色方案2、配色方案3、配色方案4、配色方案5与用户的用户配色方案1、用户配色方案2或用户配色方案3的任何条目匹配

基本上,用户是由代理注册的,然后指定他们喜欢的颜色。商业用户自己注册的配色方案,决定了他们适合什么颜色。我需要找到,对于某个特定的代理商,是否有任何配色方案的颜色适合用户选择的任何颜色

----------------------
agents
----------------------
agent_id  | agent_name
--------- | ----------
1         | Rod
2         | Jane
3         | Freddy

------------------------------------------------------------------------------
users
------------------------------------------------------------------------------
user_id | agent_id | user_name | user_colour_1 | user_colour_2 | user_colour_3
------- | -------- | --------- | ------------- | ------------- | -------------
1       | 1        | Andy      | 1             | 2             | 3
2       | 2        | Betty     | 2             | 1             | 5
3       | 3        | Claire    | 3             | 1             | 6
4       | 1        | Derek     | 4             | 5             | 7
5       | 1        | Eric      | 1             | 6             | 2
6       | 2        | Fay       | 2             | 7             | 3
7       | 3        | Gary      | 3             | 1             | 7
------------------------------------------------------------------------------

----------------------------------------------------------------
colourschemes
----------------------------------------------------------------
scheme_id | colour_1 | colour_2 | colour_3 | colour_4 | colour_5
--------- | -------- | -------- | -------- | -------- | --------
1         | 1        | 2        | 3        | 5        | 7
2         | 2        | 3        | 5        | 1        | 4    
3         | 3        | 6        | 7        | 2        | 4    
4         | 4        | 3        | 1        | 7        | 2
5         | 5        | 6        | 7        | 2        | 3
6         | 6        | 5        | 1        | 4        | 3
7         | 7        | 3        | 6        | 1        | 2

-----------------------
colours
-----------------------
colour_id | colour_name
--------- | -----------
1         | red
2         | yellow
3         | blue
4         | green
5         | orange
6         | purple
7         | black
好的,很抱歉耽搁了这么久,这里是想要的结果

------------------------------------------
results table
------------------------------------------
agent_id | user_id | scheme_id | colour_id
------------------------------------------
1        | 1       | 1         | 1
1        | 1       | 1         | 2
1        | 1       | 1         | 3
1        | 1       | 2         | 2
1        | 1       | 2         | 1
1        | 1       | 2         | 3
1        | 1       | 3         | 3
1        | 1       | 3         | 2
1        | 1       | 4         | 3
1        | 1       | 4         | 1
1        | 1       | 4         | 2
1        | 1       | 5         | 2
1        | 1       | 5         | 3
1        | 1       | 6         | 1
1        | 1       | 6         | 3
1        | 1       | 7         | 3
1        | 1       | 7         | 1
1        | 1       | 7         | 2
1        | 4       | 1         | 5
1        | 4       | 1         | 7
1        | 4       | 2         | 5
1        | 4       | 2         | 4
1        | 4       | 3         | 7
1        | 4       | 3         | 4
1        | 4       | 4         | 4
1        | 4       | 4         | 7
1        | 4       | 5         | 5
1        | 4       | 5         | 4
1        | 4       | 6         | 5
1        | 4       | 6         | 4
1        | 4       | 7         | 7
1        | 5       | 1         | 1
1        | 5       | 1         | 2
1        | 5       | 2         | 2
1        | 5       | 2         | 1
1        | 5       | 3         | 6
1        | 5       | 3         | 2
1        | 5       | 4         | 6
1        | 5       | 4         | 2
1        | 5       | 5         | 6
1        | 5       | 5         | 1
1        | 5       | 6         | 1
1        | 5       | 6         | 2
1        | 5       | 7         | 6
1        | 5       | 7         | 1
1        | 5       | 7         | 2

您要查找的是这样一个复杂的where子句

SELECT 
  u.agent_id, 
  u.agent_name 
from 
  users u, 
  colourschemes c 
where 
  u.user_colour_1 = c.scheme_id  
  or  u.user_colour_2 = c.scheme_id 
  or u.user_colour_3 = c.scheme_id 
  and c.colour_1 = "blue"     
  and c.colour_2 = "purple" 
  and c.colour_3 = "black" 
  and c.colour_4 = "yellow" 
  and c.colour_5 = "green" ;

好的,只是为了跟进,这里是来自另一个建议源的建议代码

SELECT u.user_id
     , u.agent_id
     , s.scheme_id
     , u.user_colour_1 AS user_colour
  FROM users u
 INNER JOIN colourschemes ON (u.user_colour_1 = s.colour_1 OR u.user_colour_1 = s.colour_2 OR u.user_colour_1 = s.colour_3 OR u.user_colour_1 = s.colour_4 OR u.user_colour_1 = s.colour_5)
UNION ALL
SELECT u.user_id
     , u.agent_id
     , s.scheme_id
     , u.user_colour_2 AS user_colour
  FROM users u
 INNER JOIN colourschemes ON (u.user_colour_2 = s.colour_1 OR u.user_colour_2 = s.colour_2 OR u.user_colour_2 = s.colour_3 OR u.user_colour_2 = s.colour_4 OR u.user_colour_2 = s.colour_5)
UNION ALL
SELECT u.user_id
     , u.agent_id
     , s.scheme_id
     , u.user_colour_3 AS user_colour
  FROM users u
 INNER JOIN colourschemes ON (u.user_colour_3 = s.colour_1 OR u.user_colour_3 = s.colour_2 OR u.user_colour_3 = s.colour_3 OR u.user_colour_3 = s.colour_4 OR u.user_colour_3 = s.colour_5)

你能不能也列出一张你预期结果的表格?不清楚您在寻找什么。请阅读-stackoverflow.com/help/how-to-ask。正如@paqogomez所指出的,您需要包含更多的细节,而不是蓬松。你尝试过任何代码吗?这是非常广泛的,你要求有人为你创建一个完整的网站。或者,您是否正在就某个特定零件寻求帮助?如果找到了应列出的匹配项。因此,生成的表可能返回多个用户id,并且当用户的一个颜色选择与一个可用的配色方案匹配时,用户id可能会出现多次。请根据您当前的数据向我们展示一个示例。您需要在and或or逻辑周围添加括号。如前所述,这不会返回您期望的结果。我建议使用SQL92标准内部联接,而不是旧语法。感谢您的提示,我刚刚注意到我上面的db设计中的漏洞,即在ColorSchemes表中缺少用户\u color\u id引用。