1

我有两张桌子,tab_ad每个tab_photos广告可以有五张照片(或任何一张)。

结构:

tab_ad

  • ad_id
  • 广告标题
  • ad_desc

tab_photos

  • ph_id
  • ph_path
  • ad_id

我正在尝试选择(每个 ad_id)tab_ad上的所有列和第一张照片tab_photos,如果我没有找到 ad_id ontab_photos应该返回NULL

示例:返回 ad_id、ad_title、ad_desc、ph_id、ph_path

4

2 回答 2

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
于 2013-07-22T11:47:50.533 回答
1

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    
于 2013-07-22T11:49:35.150 回答