微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql中同一表的并集

如何解决mysql中同一表的并集

我有来自同一表的三个查询输出。但必须将所有3个合并为单个mySQL查询

    <form method="post" action="">

    <!-- INFO SECTION -->
    <div id="infos">
        <h2>Infos personnelles</h2>
        <input placeholder="Prénom">
        <input placeholder="Nom">     
    </div>


    <!-- TRAINING SECTION -->
    <div id="training">
        <h2>Formation</h2>
        <!-- Template -->
        <div id="new-training" style="display:none">
            <div>
                    </br>
                    <p></p>
                    <input id="mytext" type="text" name="training[1][institut]" placeholder="Diplôme" value="">
                    <input name="training[1][institut]" placeholder="Institut">
            </div>
        </div>
    </div>

    <p id="addnew">
        <a href="javascript:addTraining()">+ Ajouter une formation</a>
    </p>

    <p>
        <br>
        <input type="submit" value="Sauvergarder" name="submit">
    </p>
</form>


<script> // 1st : Enregistrer / supprimer une formation

var ct = 1;

function addTraining()
{
    ct++;
    var div1 = document.createElement('div');
    div1.id = ct;
    // link to delete extended form elements
    var delLink = '<a href="javascript:removeTraining('+ ct +')">Supprimer cette formation</a>';
    div1.innerHTML = document.getElementById('new-training').innerHTML + delLink;
    document.getElementById('training').appendChild(div1);
}

function removeTraining(eleId)
{
    d = document;
    var ele = d.getElementById(eleId);
    var parentEle = d.getElementById('training');
    parentEle.removeChild(ele);
}

这三个输出都是唯一的值,彼此之间没有关系。我只需要使其平行。 我尝试将Union与3个quires一起使用的实际输出,但未达到预期的结果。

提前感谢,,,

解决方法

您可以为每个查询分配ROW_NUMBER(),如果只是为了同时显示它们,可以使用JOIN。类似于下面的查询:

SELECT SKU_VARIANT1_VALCD,SKU_VARIANT1_VALUE_DESC,SKU_VARIANT2_VALCD,SKU_VARIANT2_VALUE_DESC,MIN_LOT_PRICE,MAX_LOT_PRICE 
 FROM
(SELECT SKU_VARIANT1_VALCD,ROW_NUMBER() OVER (ORDER BY SKU_VARIANT1_VALCD) rnum
FROM lot_table WHERE SKU_VARIANT1_VALCD IS NOT NULL
GROUP BY SKU_VARIANT1_VALCD) A 
LEFT JOIN
(SELECT SKU_VARIANT2_VALCD,ROW_NUMBER() OVER (ORDER BY SKU_VARIANT2_VALCD) rnum
FROM lot_table WHERE SKU_VARIANT2_VALCD IS NOT NULL
GROUP BY SKU_VARIANT2_VALCD) B ON A.rnum=B.rnum
LEFT JOIN
(SELECT MIN(LOT_PRICE) MIN_LOT_PRICE,MAX(LOT_PRICE)  MAX_LOT_PRICE,ROW_NUMBER() OVER (ORDER BY SKU_VARIANT2_VALCD) rnum
 FROM lot_table) C ON A.rnum=C.rnum;

this fiddle demo example一起。

,

您能提供lot_table的表结构吗?

我猜您的lot_table具有以下结构:

SKU_VARIANT1_VALCD,LOT_PRICE

我是根据您发布的实际查询做出此推断的。

您似乎想找到variant1和variant2组合的最小手价和最大手价。这是正确的吗?

如果是,您为什么还要要求全部工会?一个简单的分组查询不适合您吗?如果上面提到的表结构正确,这就是我会做的事情。

select 
  SKU_VARIANT1_VALCD,MIN(LOT_PRICE) MIN_LOT_PRICE,MAX(LOT_PRICE) MAX_LOT_PRICE
from lot_table
group by SKU_VARIANT1_VALCD,SKU_VARIANT2_VALUE_DESC;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。