2013-07-22 104 views
1

我有兩個表,tab_adtab_photos,每個廣告可以有五張照片(或任何)。從幾個表中選擇數據

結構:

tab_ad

  • ad_id
  • ad_title
  • ad_desc

tab_photos

  • ph_id
  • ph_path
  • ad_id

我試圖做一個選擇選擇tab_ad,並在tab_photos(每個ad_id)的第一張照片的所有列,如果我不找不到tab_photos上的ad_id應該返回NULL

實施例:返回ad_id,ad_title,ad_desc,ph_id,ph_path

回答

0

使用correlated sub query因此您想要從第二個表中選擇top photo

SELECT 
    ad_id, 
    ad_title, 
    ad_desc, 
    (SELECT TOP(1)ph_path FROM tab_photos b WHERE b.ad_id=a.ad_ID) 
FROM tab_ad a  
+0

完美!謝謝。 – Willian

+0

不客氣 – Nithesh

3

嘗試LEFT JOIN它會給的tab_photos值作爲NULL如果數據(即ad_id)不可用有:

SELECT ad.ad_id, ad.ad_title, ad.ad_desc, ph.ph_id, ph.ph_path 
    FROM tab_ad ad 
    LEFT JOIN tab_photos ph 
    ON ad.ad_id = ph.ad_id 
+0

這個結果是多行,而'tab_photos'包含多個照片爲一個'ad_id' ?? – Nithesh