2011-06-23 60 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 
相关问题