新手mysql加入问题

新手mysql加入问题,mysql,left-join,join,Mysql,Left Join,Join,我有: 一个优惠券表,其列名为owner\u id和id 以及一个名为id和website\u url的列的owners表 我想只使用coups.id(在php变量$coupon\u id中提供)获取所有者.website\u 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 这是正确的吗

我有:

  • 一个
    优惠券
    表,其列名为
    owner\u id
    id
  • 以及一个名为
    id
    website\u url
    的列的
    owners
我想只使用
coups.id
(在php变量
$coupon\u id
中提供)获取
所有者.website\u 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

这是正确的吗?我把
限制1
放在那里,因为每个所有者都有很多优惠券。

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


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

Hi,谢谢。这是因为我将其限制为1吗?是否有必要限制1?@和YPANDY:没有必要,因为一张优惠券总是属于一个且只有一个所有者
    SELECT o.website_url
      FROM coupons c
INNER JOIN owners o ON o.id = c.owner_id
     WHERE c.id='$coupon_id'