SQL查询复制Excel的INDEX / MATCH功能

时间:2018-12-17 19:57:12

标签: mysql sql excel

我有两个表:

产品映射:

<!--Hypothetical color palette. User can drag and drop colors ONLY to svg paths with the class="setColor" to change the default "fill" color values-->
<div class="colorPalette">
  <p>green</p>
  <p>red</p>
  <p>lightblue</p>
</div>

<!--Hypothetical SVG that must be colored correctly.-->
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">

        <path id="aSVG" class="setColor" d="M10 10 C 20 20, 40 20, 50 10" stroke="black" fill="green" />
        <path id="bSVG" class="setColor" d="M70 10 C 70 20, 120 20, 120 10" stroke="black" fill="red" />
        <path d="M130 10 C 120 20, 180 20, 170 10" stroke="black" fill="white" />
        <path id="cSVG" class="setColor" d="M10 60 C 20 80, 40 80, 50 60" stroke="black" fill="lightblue" />
        <path id="dSVG" class="setColor" d="M70 60 C 70 80, 110 80, 110 60" stroke="black" fill="lightblue" />
        <path d="M130 60 C 120 80, 180 80, 170 60" stroke="black" fill="white" />
        <path id="eSVG" class="setColor" d="M10 110 C 20 140, 40 140, 50 110" stroke="black" fill="lightblue" />
        <path id="fSVG" class="setColor" d="M70 110 C 70 140, 110 140, 110 110" stroke="black" fill="lightblue" />
        <path d="M130 110 C 120 140, 180 140, 170 110" stroke="black" fill="white" />

    </svg>

<!--Appears on check button click showing tick for correct, x for wrong.-->
<p class="coloringResult">&nbsp;</p>

<!--control buttons-->
<!--Check button: compares the users colors placed on the svg, with the correct colors from the answers list. Score container appears and shows user score-->
<button class='check' type='button'>Check</button>

<!--Try again button: keep the correct answers, the wrong answers return to the original "fill" color and the score is changed keeping only the correct colors score-->
<button class='try-again' type='button'>Try again</button>

<!--Reset button: reset exersice to original state. All svg paths to default "fill" color. Score resets to 0 and disappears from screen -->
<button class='clear-answers' type='button'>Reset</button>

<!--Correct answers list. Not visible in user-->
<ol class="answersList">
  <li class="t1">red</li>
  <li class="t1">green</li>
  <li class="t1">lightblue</li>
  <li class="t1">lightblue</li>
  <li class="t1">lightblue</li>
  <li class="t1">lightblue</li>
</ol>

-Child_SKU是主键

产品目录

Parent_SKU
Color
Child_SKU

-UID是主键

现在我想将Parent_SKU Color UID Date 列添加到Child_SKU表中。

(与每个Product_CatalogParent_SKU组合相对应,Color表中有一个Child_SKU

我如何编写SQL查询来执行相同的操作?

1 个答案:

答案 0 :(得分:1)

一个简单的JOIN应该是您所需要的,同时使用两个字段Parent_SKUColor。如果Product_Mapping中没有匹配的记录,则要使用LEFT JOIN。 从概念上讲,它可以实现与Excel VLOOKUP相同的功能。

SELECT
    pc.Parent_SKU
    pc.Color
    pc.UID
    pc.Date
    pm.Child_SKU
FROM
    Product_Catalog pc
    LEFT JOIN Product_Mapping pm
        ON  pm.Parent_SKU = pc.Parent_SKU
        AND pm.Color      = pc.Color