2016-03-27 17 views
1

"ON AD。[UID] = UI。[UID]"を使用せずに2つのテーブルを結合したいので、このSQL文を更新して助けてくれる人を探していますか?パフォーマンスが条件文での参加に優れているとして、あなたはクロスに参加したいSQL結合を使用しているが条件なしの場合

SELECT AD.[AdsID] ,AD.[UID] ,AD.[Section] ,AD.[Category] ,AD.[Country] ,AD.[State] ,AD.[City] ,SUBSTRING([AdsTit],1,30)+'...' as AdsTit ,SUBSTRING([AdsDesc],1,85) as AdsDesc ,AD.[AdsPrice] ,AD.[Img1] ,AD.[Currency] ,AD.[Section] ,AD.[Currency] ,AD.[AdsDate] ,AD.[approvAds] ,UI.[approv] 
FROM [ads] as AD JOIN UserInfo as UI ON AD.[UID] = UI.[UID] 
where AD.[Country] = @Location AND AD.[approvAds]= 'Y' AND UI.[approv]='Y' 
ORDER BY [AdsDate] DESC 
+0

を持っているのですか? –

+0

あなたはどのDBエンジンを使用していますか? –

答えて

0

の代わりに、あなたが必要なテーブルを置きます、それは、内側が

SELECT AD.[AdsID] ,AD.[UID] ,AD.[Section] ,AD.[Category] ,AD.[Country] ,AD.[State] ,AD.[City] ,SUBSTRING([AdsTit],1,30)+'...' as AdsTit ,SUBSTRING([AdsDesc],1,85) as AdsDesc ,AD.[AdsPrice] ,AD.[Img1] ,AD.[Currency] ,AD.[Section] ,AD.[Currency] ,AD.[AdsDate] ,AD.[approvAds] ,UI.[approv] 
FROM [ads] as AD, UserInfo as UI 
where AD.[UID] = UI.[UID] 
and AD.[Country] = @Location AND AD.[approvAds]= 'Y' AND UI.[approv]='Y' 
ORDER BY [AdsDate] DESC 
0

は、これを行うことはお勧めしません。ここで言われていること

は、あなたがそれを行う方法です。

SELECT A.*, B.* 
FROM A CROSS JOIN B 
WHERE A.Id = B.AId 

あなたが「どこ」に「オン」から条件を移動することができますただ、AとBの文

1

あなたはあなたのSQLクエリで代わりONUSINGキーワードを使用するか、すべての比較natural joinを、使用することができます参加するように動作します2つの表の共通の列はオン状態ではありません。このようなあなたのテーブルの

クエリ:あなたはどのFKSを

select AD.column1, AD.column2, UI.column1, UI.column2........ 
from ads AD join userinfo UI using(UID) 
where AD.country='location' and AD.ApprovAds='y' and UI.approv='y' 
order by Ads(date) desc 

それとも

select AD.column1, AD.column2, UI.column1, UI.column2........ 
from ads AD natural join userinfo UI 
where AD.country='location' and AD.ApprovAds='y' and UI.approv='y' 
order by Ads(date) desc 
関連する問題