2015-02-10 160 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