这是上一个主题的新问题/更新。 MySQL + Query to return all rows that have cols that are 'active' in another table
感谢成员@Nick的帮助,我正在使用PHP和MySQL通过查询返回一些数据
我目前需要帮助来调整当前查询,以便以某种方式从当前返回的行/数据中的另一个表返回替代数据。
以下是一些有关表设置的最新示例以及当前查询状态:
REXTESTER: http://rextester.com/RZXI72814
SQL FIDDLE: http://www.sqlfiddle.com/#!9/296b5/3
它目前可以按照我在上一个请求中概述的方式工作,但是一旦使用后,我意识到我错过了一个要求,事后看来,我觉得这很重要...大声笑(抱歉)
当前状态:(按预期工作) 查询返回'barbot_drinks'表中的所有行[其行中(1-15)由(每个3个cols)_dispenser#_code#和_dosage#组成。.在barbot_ingredients表中找到的每个行均处于活动状态。
如果_dispenser#_code#和_dosage#列中的任何一个为空,则整个“成分”均无效...并且空字段不计入...通常表示饮料配方的结尾(饮料只能含有最多15种成分)
示例: 如果饮料配方/条目只有2种“成分”(成分_1_分配器,配料_1_代码和配料_1_剂量和配料_2_分配器,配料_2_代码和配料_2_剂量)
VODKA和OJ
它会检查配料表,以查看barbot_ingredients表中是否同时存在VODKA和OJ条目并且处于活动状态。
这就是我们现在的位置。
我需要尝试做的是从-EACH- Ingredient_x_code列的barbot_ingredients中获取“ dispenser_order”值(每杯饮料可能为1-15)..对于返回的每种饮料。 (即:该成分饮料表中的所有成分均在成分表中并有效)
我正在解析每一行,并使用PHP从该查询的结果集中创建一个字符串。
我当前正在创建什么:
示例(螺丝驱动器饮料): (在被php脚本解析之后)
bottle = vdk:1,valve = oj:2000
或(行名称)
[配料_1_分配器] = [配料_1_剂量]:[配料_1_剂量],[配料_2_分配器] = [配料_2_代码]:[配料_2_剂量]
我需要构建的是这个
瓶= 1:1,阀= 1:2000
或
[ingredient_1_dispenser] = [### dispenser_order-匹配此设置的FROM_INGREDIENT表-=配料_1_code ####] :[ingredient_1_dosage],[ingredient_2_dispenser] = [### dispenser_order -匹配此设置的FROM_INGREDIENT表格-= Ingredient_2_code ###] :[ingredient_2_dosage]
即:(被php脚本解析后)
瓶= [### dispenser_order-匹配此设置的FROM_INGREDIENT表-= Ingredient_1_code ###] :1,
阀门= [### dispenser_order-匹配此设置的FROM_INGREDIENT表-= Ingredient_2_code ###] :2000
由于1到15个可能的列组合,所以当前时间很长,但是我还要求提供易于阅读的内容,因此我也可以理解和学习它。(就像我到目前为止!)。
让我知道我是否可以提供其他信息,或者我是否不清楚。我想提供完整的背景知识,工作代码的链接,以及我正在做/正在做的事以及我想要做的事的例子。
答案 0 :(得分:1)
由于数据库未规范化,事情开始变得非常混乱。该查询将为您提供所需的结果。不幸的是,它对于SQLFiddle来说太大了……但是rextester似乎可以处理它-here is the new one。
以下是输出:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M12,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5 5,-2.24 5,-5 -2.24,-5 -5,-5zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"/>
</vector>
这是更新的查询:
id drink_id drink_name drink_image drink_desc ingredient_1_dispenser ingredient_1_code ingredient_1_dosage ingredient_1_dispenser_order ingredient_2_dispenser ingredient_2_code ingredient_2_dosage ingredient_2_dispenser_order ingredient_3_dispenser ingredient_3_code ingredient_3_dosage ingredient_3_dispenser_order
1 vdk_org Screw Driver screw_driver.jpg Screw Driver description... bottle vdk 1 1 valve oj 2000 1
2 vdk_cran Cape Cod cape_cod.jpg Cape Cod description... bottle vdk 1 1 valve cbj 2000 2
3 dry_mrtn Dry Martini dry_martini.jpg Dry Martini description... bottle vdk 2.5 1 bottle vrmth .5 7 valve orgbit 200 3