首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择同一列两次

选择同一列两次
EN

Stack Overflow用户
提问于 2014-10-01 05:08:24
回答 2查看 70关注 0票数 0

我还需要从fieldid = 5的xcart_extra_field_values中选择值。环顾四周,我似乎需要做的是使用连接和别名,但是我似乎不知道如何在表本身上连接,而只是使用另一个别名作为值,并试图在同一个表中两次崩溃我的数据库。两次。

这是我当前的查询,它是有效的:

代码语言:javascript
复制
                            SELECT a.avail,
                                c.value,
                                b.productid,
                                a.productcode,
                         FROM xcart_products a,
                              xcart_products_lng_en b,
                              xcart_extra_field_values c,
                         WHERE a.productid IN
                             (SELECT productid
                              FROM xcart_extra_field_values
                              WHERE a.productid = productid
                                AND fieldid = 5
                                AND (LOWER(value) = 'retail'
                                     OR LOWER(value) = 'stock'
                                     OR LOWER(value) = 'c1 stock'
                                     OR LOWER(value) = 'c2 stock'
                                     OR LOWER(value) = 'g stock') )
                           AND c.fieldid = 9
                           AND (a.productid = b.productid)
                           AND (b.productid = c.productid)

这是使数据库崩溃的查询:

代码语言:javascript
复制
                            SELECT a.avail,
                                c.value,
                                d.value,
                                b.productid,
                                a.productcode
                         FROM xcart_products a,
                              xcart_products_lng_en b,
                              xcart_extra_field_values c,
                              xcart_extra_field_values d
                         WHERE a.productid IN
                             (SELECT productid
                              FROM xcart_extra_field_values
                              WHERE a.productid = productid
                                AND fieldid = 5
                                AND (LOWER(value) = 'retail'
                                     OR LOWER(value) = 'stock'
                                     OR LOWER(value) = 'c1 stock'
                                     OR LOWER(value) = 'c2 stock'
                                     OR LOWER(value) = 'g stock') )
                           AND c.fieldid = 9
                           AND d.fieldid = 5
                           AND (a.productid = b.productid)
                           AND (b.productid = c.productid)
EN

Stack Overflow用户

发布于 2014-10-01 05:18:01

我已经把它弄好了。典型的我发布mysql问题的时候。

代码语言:javascript
复制
                            SELECT a.avail,
                                    c.value,
                                    d.value,
                                    b.productid,
                                    a.productcode
                             FROM xcart_products a,
                                  xcart_products_lng_en b,
                                  xcart_extra_field_values c,
                                  xcart_extra_field_values d
                             WHERE a.productid IN
                                 (SELECT productid
                                  FROM xcart_extra_field_values
                                  WHERE a.productid = productid
                                    AND fieldid = 5
                                    AND (LOWER(value) = 'retail'
                                         OR LOWER(value) = 'stock'
                                         OR LOWER(value) = 'c1 stock'
                                         OR LOWER(value) = 'c2 stock'
                                         OR LOWER(value) = 'g stock') )
                               AND c.fieldid = 9
                               AND d.fieldid = 5
                               AND (a.productid = b.productid)
                               AND (b.productid = c.productid)
                               AND (c.productid = d.productid)

我还需要将c.productid与d.productid进行比较。然而,我对我自己的答案并不满意,因为它看起来非常低效。不幸的是,这是由于我自己对mysql的理解有限。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26130145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档