我有两个表:一个是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
答案 0 :(得分: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;
注意:您需要从oi
和i
中选择单个字段,并为其指定不同的名称。
答案 1 :(得分: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
同意兰迪关于这两个联盟的事。如果两个图像都存在,那么内连接可能会更有效。