我有两张桌子,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
我有两张桌子,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
尝试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
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