2011-06-23 25 views
0

共有IDを持つ2つのテーブルを結合する必要がありますが、両方のテーブルに行が含まれている場合にのみ行を返します。私はサブクエリで解決策を見つけましたが、(これらのクエリはページロードの複数回実行されるため)避けたいものです。両方のレコードがある2つのテーブルを結合する

例:Test2を、ピクチャテーブルの行を持っていないため

`Products`: 
Name PicID 
------|------- 
Test1 | 4 
Test2 | 5 


`Images`: 
PicID Picture 
------|-------- 
    4 | BLOB 

クエリのみ(BLOBを有する)のTest1を返します。

思考?
最大

+1

標準 'JOIN'はあなたがやりたいことはありません、なぜあなたはおそらく説明する必要があります。 –

+0

誰がそう言っていませんか? – Ben

答えて

5

INNER JOINは、一致する値が両方のテーブルに存在することを保証するために使用されます。

SELECT p.PicID, p.Name, i.Picture 
    FROM Products p 
     INNER JOIN Images i 
      ON p.PicID = i.PicID 
+0

うわー、私はそれを忘れて信じられない。私はそれがどちらのテーブルにあったとしても内部結合があったと考え続けました。とりあえずありがとう。 – Ben

2
SELECT P.Name, P.PicID, I.Picture 
FROM Products P 
INNER JOIN Images I 
ON p.PicID = I.PicID 
1
Select * 
FROM Products, Images 
WHERE Product.PicID = Images.PicID 
関連する問題