2013-07-22 84 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