2个表联合查询,表A是产品表,表B是产品图片表,一个产品可能对应多个图片,现在要查询产品表和最近上传的一张产品图片,请问SQL语句应该怎么写?谢谢

解决方案 »

  1.   

    select b.* from B inner jion A a on a.[关联B的字段]=b.[关联A的字段]
     select b.[图片] from Bb  where [时间] in(select max(时间) from B )
      

  2.   

    select A.产品,BB.图片名称,BB.上传时间 from A left join b BB 
    on A.产品id=BB.产品id 
    where 上传时间=(select max(上传时间) from b where 产品id=bb.产品id)
      

  3.   

    select A.产品,BB.图片名称,BB.上传时间 from A left join b BB 
    on A.产品id=BB.产品id 
    where 上传时间=(select max(上传时间) from b where 产品id=bb.产品id)
      

  4.   

    从性能速度方面考虑也可以这样写:
    SELECT A.*,B.图片 
    FROM 表A AS A 
    INNER JOIN 
           (SELECT C1.* FROM 表B AS C1 WHERE NOT EXISTS(SELECT 1 FROM 表B AS C2  WHERE   C1.产品=C2.产品 AND C2.上传日期>C1.上传日期)) AS B
    ON B.产品=A.产品
      

  5.   

    根据“如果产品没有上传图片呢,还是要产品显示出来的”
    可以改用LEFT OUTER JOIN
    try:
    SELECT A.*,B.图片 
    FROM 表A AS A 
    LEFT OUTER JOIN 
           (SELECT C1.* FROM 表B AS C1 WHERE NOT EXISTS(SELECT 1 FROM 表B AS C2  WHERE   C1.产品=C2.产品 AND C2.上传日期>C1.上传日期)) AS B
    ON B.产品=A.产品
      

  6.   

    sql版就是人气旺,高手多,结贴