2011-06-23 86 views
0

我需要連接兩個表共享ID,但我只想返回一行,如果兩個表都包含一行。我發現了一個包含子查詢的解決方案,但希望避免它們(因爲此查詢多次在頁面加載時運行)。加入兩個表都有記錄

一個例子:

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


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

的查詢只返回Test1的(與BLOB),因爲Test2的沒有在圖片表中的一行。

想法?
最大值

+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 
相關問題