对mysql表中主键的多次引用

发布于 2024-10-16 05:24:59 字数 1054 浏览 3 评论 0原文

我试图通过引用多个表中的主键来检索值,但无法获取结果。这是表

Density Table

 **de_id  density  color**
    1   21  red
    2   22  blue
    3   23  green
    4   24  yellow
    5   25  orange

Size Table

**si_id   length  breadth**
1        21     41
2        22     42
3        23     43
4        24     44
5        25     45

Order_de Table

**or_id  density    color  length breadth**
 1     1          2       3       4
 2     4          3       2       1

我试图计算出的查询是

  SELECT density.density,density.color,size.length,size.breadth,order_de.or_id from 
    density,size,order_de WHERE order_de.density=density.de_id and 
    order_de.color=density.de_id and order_de.length=size.si_id and 
    order_de.breadth=size.si_id  order by order_de.or_id asc

期望的结果应该是

density   color   length breadth  or_id
     21    blue      23    44       1
     24   green      22    41       2

但查询什么也检索不到。 任何人都可以帮忙吗?

i trying to retrieve value by referencing primary key in multiple tables but unable to get the result.Here is the table

Density Table

 **de_id  density  color**
    1   21  red
    2   22  blue
    3   23  green
    4   24  yellow
    5   25  orange

Size Table

**si_id   length  breadth**
1        21     41
2        22     42
3        23     43
4        24     44
5        25     45

Order_de Table

**or_id  density    color  length breadth**
 1     1          2       3       4
 2     4          3       2       1

The query i am trying to work out is

  SELECT density.density,density.color,size.length,size.breadth,order_de.or_id from 
    density,size,order_de WHERE order_de.density=density.de_id and 
    order_de.color=density.de_id and order_de.length=size.si_id and 
    order_de.breadth=size.si_id  order by order_de.or_id asc

The desired result should be

density   color   length breadth  or_id
     21    blue      23    44       1
     24   green      22    41       2

But the query retrieves nothing.
Can any one help??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

碍人泪离人颜 2024-10-23 05:24:59

您需要为每个属性独立连接到表:密度、颜色、长度和宽度。另外,不要使用隐式连接样式。我认为这导致您在生成此查询时感到困惑。

SELECT d1.density, d2.color, s1.length, s2.breadth, o.or_id 
    FROM Order_de o
        INNER JOIN Density d1
            ON o.density = d1.de_id
        INNER JOIN Density d2
            ON o.color= d2.de_id
        INNER JOIN Size s1
            ON o.length = s1.si_id
        INNER JOIN Size s2
            ON o.breadth = s2.si_id
    ORDER BY o.or_id asc

You need to join to the tables independently for each attribute: density, color, length and breadth. Also, don't use the implicit join style. I think that contributed to your confusion in producing this query.

SELECT d1.density, d2.color, s1.length, s2.breadth, o.or_id 
    FROM Order_de o
        INNER JOIN Density d1
            ON o.density = d1.de_id
        INNER JOIN Density d2
            ON o.color= d2.de_id
        INNER JOIN Size s1
            ON o.length = s1.si_id
        INNER JOIN Size s2
            ON o.breadth = s2.si_id
    ORDER BY o.or_id asc
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文