As I understand the outer product of 2 kets gives the compound state for 2 qubits in the tensor product of the 2 Hilbert spaces (or does it?). For example, let $|u\rangle_1=a|0\rangle_1+b|1\rangle_1$ and $|v\rangle_2=c|0\rangle_2+d|1\rangle_2$ then $$|u\rangle_1|v\rangle_2=ac|0\rangle_1|0\rangle_2+ad|0\rangle_1|1\rangle_2+bc|1\rangle_1|0\rangle_2+bd|1\rangle_1|1\rangle_2$$ $$=ac|00\rangle_{12}+ad|01\rangle_{12}+bc|10\rangle_{12}+bd|11\rangle_{12}$$ But from the definition $|0\rangle_1|0\rangle_2$ is supposed to be a $2 \times 2$ tensor similar to the Kroneker product $|0\rangle_1|0\rangle_2^T$. Then how do I get from it to $|00\rangle_{12}$, which is a $4 \times 1$ ket? Is this just a bra-ket notational trick, or how exactly does it work?
This question is from me trying to understand the Wikipedia page on the Deutsch-Jozsa algorithm. I feel like I have a major confusion here. Is $|0\rangle|0\rangle$, or more general $|x\rangle|0\rangle$, something else than the outer product?
The confusion is probably caused by the use of $\otimes$ for both the tensor product and the outer product. Let: $$|x\rangle =\begin{bmatrix} x_1\\x_2\end{bmatrix},\ \ \ |y\rangle =\begin{bmatrix} y_1\\y_2\end{bmatrix}$$ Then $|x\rangle|y\rangle$ is the following tensor product: $$|x\rangle|y\rangle = \begin{bmatrix} x_1\\x_2\end{bmatrix}\otimes\begin{bmatrix} y_1\\y_2\end{bmatrix}$$ which is a $4\times 1$ vector. This is why $|0\rangle|0\rangle=|00\rangle$ etc. So the tensor product of the 2 Hilbert spaces gives you the Hilbert space for the combined qubits state. On the other hand, the outer product is: $$|x\rangle| \langle y| = \begin{bmatrix} x_1\\x_2\end{bmatrix}\otimes\begin{bmatrix} y_1^* \ y_2^*\end{bmatrix}$$ which is a $2\times 2$ matrix. This will give you a linear operator in the Hilbert space of 1 qubit.