【问题标题】:Rookie mysql join question菜鸟mysql加入问题
【发布时间】:2011-09-28 22:45:19
【问题描述】:

我有:

  • 一个coupons 表,其中有一列名为owner_idid
  • 和一个owners 表,其中有一列名为idwebsite_url

我想只使用coupons.id(在php 变量$coupon_id 中提供)来获取owners.website_url

这是我最好的镜头:

SELECT owners.website_url
FROM owners o
LEFT JOIN coupons c
ON o.id = c.owner_id
WHERE c.id='$coupon_id'
LIMIT 1

这是正确的吗?我放了LIMIT 1,因为每个所有者有很多优惠券。

【问题讨论】:

    标签: mysql left-join join


    【解决方案1】:

    它看起来是正确的,但是在那里使用LEFT JOIN 是没有意义的,因为您在WHERE 子句中过滤掉了失败的连接。只需使用JOIN

    您也不应该需要LIMIT 子句,因为所有优惠券都应该有唯一的ID(假设id 是主键)并且每张优惠券只有一个所有者。

    【讨论】:

    • 嗨,谢谢。那是因为我将其限制为1吗?限制1有必要吗?
    • @Andypandy:没有必要,因为 1 张优惠券始终属于 1 位且只有 1 位所有者
    【解决方案2】:
        SELECT o.website_url
          FROM coupons c
    INNER JOIN owners o ON o.id = c.owner_id
         WHERE c.id='$coupon_id'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多