0

我有两张表:一张是 d_sms,另一张是 d_image 表。每个 sms_id 我有两个图像:第一个是主图像,第二个是报价图像。我想通过 image_id 和 image_offer_id 选择这些图像。我给出两个图像但在两行中的问题。我需要在一行中选择图像和 offer_image。怎么做?

这段代码给了我两行

SELECT d_sms.*
     , d_image.*
        FROM
          d_sms
        INNER  JOIN d_image
        ON d_sms.image_id = d_image.id
        or d_sms.offer_image_id = d_image.id
4

2 回答 2

3

我认为最简单的方法是进行两个单独的连接:

select d_sms.*, i.*, oi.*
from d_sms left outer join
    d_image i
    on d_sms.image_id = i.id left outer join
    d_image oi
    on d_sms.offer_image_id = oi.id;

注意:您需要从中选择单个字段oii给它们不同的名称。

于 2013-05-20T14:04:47.367 回答
1
select s.id, i.imag, i2.imag from d_sms s 
inner join  d_image i on s.image_id = i.imageid
inner join  d_image i2 on s.offer_image_id = i2.imageid

同意兰迪关于这两个连接的问题。如果两个图像都存在,那么内部连接可能会更有效。

于 2013-05-20T14:10:55.680 回答