Non ho capito...è normale che la SELECT debba darti più di un risultato?

E poi la subquery SELECT che fai non ha senso:

SELECT val4 FROM tabella 2 WHERE val4 = 1
ti dara' N volte val4 con sempre valore 1 (N = numero di volte in cui val4 vale 1)

Forse non ho capito cosa vuoi fare, ma cosi non ha molto senso....a meno che tu non voglia semplicemente contare le occorrenze di val4 = 1, ma allora forse è meglio se usi un COUNT.

In ogni caso se correggi quella SELECT ma vuoi cmq un solo risultato puoi usare LIMIT 1