產生例如結果:如何檢索從子查詢
SELECT tb1.column1, tb1.column2
FROM table1 AS tb1
WHERE tb1.column1 = (SELECT tb2.column2 FROM table2 As tb2)
但是......有可能是從子查詢多個結果。如果有3個來自子查詢的結果,我該如何處理?
產生例如結果:如何檢索從子查詢
SELECT tb1.column1, tb1.column2
FROM table1 AS tb1
WHERE tb1.column1 = (SELECT tb2.column2 FROM table2 As tb2)
但是......有可能是從子查詢多個結果。如果有3個來自子查詢的結果,我該如何處理?
使用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
您需要使用in
而非=
:
SELECT tb1.column1, tb1.column2
FROM table1 AS tb1
WHERE tb1.column1 in (SELECT tb2.column2 FROM table2 As tb2)
但....有超過2個結果出來在內部選擇 – user2218255
@ user2218255,這就是爲什麼你使用'in'而不是'='。 –
但是....還有更多在內部選擇 – user2218255
@ user2218255中出現2個結果嗎?你是指從內部選擇的2個結果是什麼意思? –
thz ..我明白了! – user2218255