Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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相关的表查找和行->;柱_Mysql - Fatal编程技术网

MySQL相关的表查找和行->;柱

MySQL相关的表查找和行->;柱,mysql,Mysql,我继承了这个非常大、架构很差的解决方案,需要编写/运行一些笨拙的大型查询 虽然下面的查询可以工作并提供我想要的结果,但选择帮助的每个志愿者的列表不会标记为测试,并且关联的用户帐户标记为“活动”。然后再加上一组额外的专栏,5个社交媒体平台各有一个专栏(但也可以是技能列表或其他任何内容) 我的问题是:如何使social platform lookup查询建立在基础之上,这样就不用硬编码social id值及其关联名称,我可以编写一个查询,在wp\u cfg\u social表中循环,取出id和名称值

我继承了这个非常大、架构很差的解决方案,需要编写/运行一些笨拙的大型查询

虽然下面的查询可以工作并提供我想要的结果,但选择帮助的每个志愿者的列表不会标记为测试,并且关联的用户帐户标记为“活动”。然后再加上一组额外的专栏,5个社交媒体平台各有一个专栏(但也可以是技能列表或其他任何内容)

我的问题是:如何使social platform lookup查询建立在基础之上,这样就不用硬编码
social id
值及其关联名称,我可以编写一个查询,在
wp\u cfg\u social
表中循环,取出id和名称值

奖励点:掌握mysql查询的输入和输出的好资源是什么

谢谢,

nbsp

您应该有一个单独的表,比如您提到的
wp\u cfg\u social
,至少有两个字段,即
socialid
和可能的
socialname
。并确保
socialid
的值介于1到5之间。鉴于此,您可以使用
internaljoin
显示
socialname
值,而无需硬编码,如:

SELECT v.volunteerid
  , v.firstname
  , v.lastname
  , v.mobile
  , v.phone
  , v.email
  , v.has_smartphone
  , s.socialname
FROM wp_cfg_volunteer v
LEFT OUTER JOIN appusers u 
ON u.volunteerid = v.volunteerid
LEFT OUTER JOIN wp_cfg_volunteer_social vs 
ON vs.volunteerid = v.volunteerid
INNER JOIN wp_cfg_social s
ON v.socialid = s.socialid
WHERE v.is_test=0
AND v.will_help=1
AND u.activationstate='Active'
GROUP BY v.volunteerid
关于mysql查询的第二个问题,您可以访问以下链接:


作为您的一般参考

学习规范化作为数据库设计的基础也是很好的

哦,糟糕,使用了错误的格式…duh.wp_cfg_social表包含3列,id(自动增量)、social(平台名称)和order(用于/admin中的显示,可以忽略)。v、 socialid不是一个字段,vs是一个表,包含每个用户的多个条目(即:可能有用户592选择了socialid 1、3和5)-抱歉,我可能没有很好地描述它。一天不急着回家:)
SELECT v.volunteerid
  , v.firstname
  , v.lastname
  , v.mobile
  , v.phone
  , v.email
  , v.has_smartphone
  , s.socialname
FROM wp_cfg_volunteer v
LEFT OUTER JOIN appusers u 
ON u.volunteerid = v.volunteerid
LEFT OUTER JOIN wp_cfg_volunteer_social vs 
ON vs.volunteerid = v.volunteerid
INNER JOIN wp_cfg_social s
ON v.socialid = s.socialid
WHERE v.is_test=0
AND v.will_help=1
AND u.activationstate='Active'
GROUP BY v.volunteerid