2015-02-10 161 views
0

我想加入2个表称为adsimagesMYSQL LEFT JOIN没有ID已返回

ads

ad_id  int(11)    
title  varchar(200)   
price  int(10)    
description text    
city  varchar(20)    
location varchar(50)    
date  datetime 

images

img_id int(11)    
ad_id int(11)    
images varchar(100)   
session varchar(32) 

这里是我的代码,当我尝试加入表格并从广告表中获取所有信息,并从图片表格中获取信息(如果已上传)。

SELECT * 
    FROM ads 
    LEFT OUTER JOIN images 
    ON images.ad_id = ads.ad_id 
    GROUP BY ads.ad_id DESC 

我遇到的问题是,如果有对广告没有图像,那么后仍没有图像返回(这是,这是我想要的),但它不返回ad_id。,因此我无法找到没有ad_id的帖子。我在这里错过了一点?

回答

1

您需要将您的SELECT声明更改为此。

SELECT ads.*, images.img_id, images.images, images.session 
    FROM ads 
    LEFT JOIN images 
    ON images.ad_id = ads.ad_id 
    GROUP BY ads.ad_id DESC 

我也建议从广告表中隐含地定义你想要的,因为它会加快你的选择。

+0

工程就像一个魅力!谢谢你,先生!顺便说一句,我需要从广告中选择*,因为我使用表中的所有信息:) – AlwaysConfused 2015-02-10 17:59:42

+0

@StuckBetweenTrees如果您将查询列出而不是使用'*'作为使用'* *',那么您的查询将更快,因此需要额外处理确定要选择的列 – cmorrissey 2015-02-10 18:45:11

+0

哦,我明白了,太好了,谢谢! – AlwaysConfused 2015-02-10 19:05:27