2013-03-30 135 views
0

產生例如結果:如何檢索從子查詢

SELECT tb1.column1, tb1.column2 
FROM table1 AS tb1 
WHERE tb1.column1 = (SELECT tb2.column2 FROM table2 As tb2) 

但是......有可能是從子查詢多個結果。如果有3個來自子查詢的結果,我該如何處理?

回答

2

使用IN就可以了。

IN可以處理多個值,而=只能容納一個值。

SELECT tb1.column1, tb1.column2 
FROM table1 AS tb1 
WHERE tb1.column1 IN (SELECT tb2.column2 FROM table2 As tb2) 

或另一種方式是使用JOIN這是更優選,

SELECT DISTINCT tb1.column1, tb1.column2 
FROM table1 AS tb1 
     INNER JOIN table2 b 
      ON tb1.column1 = b.column2 
+0

但是....還有更多在內部選擇 – user2218255

+0

@ user2218255中出現2個結果嗎?你是指從內部選擇的2個結果是什麼意思? –

+0

thz ..我明白了! – user2218255

1

您需要使用in而非=

SELECT tb1.column1, tb1.column2 
FROM table1 AS tb1 
WHERE tb1.column1 in (SELECT tb2.column2 FROM table2 As tb2) 
+0

但....有超過2個結果出來在內部選擇 – user2218255

+0

@ user2218255,這就是爲什麼你使用'in'而不是'='。 –