Đây là truy vấn của bạn:
select en.*,
(select sf.red, sf.blue, sf.green, sf.yellow from data2 sf )
from data1 en;
Một truy vấn con trong select
được sử dụng như vậy được gọi là truy vấn con vô hướng . Một truy vấn con như vậy có thể được sử dụng khi một giá trị vô hướng (tức là một giá trị đơn lẻ chẳng hạn như một số hoặc một chuỗi) có thể được sử dụng.
Truy vấn con vô hướng phải đáp ứng hai điều kiện:
- Nó trả về nhiều nhất một hàng.
- Nó trả về một cột.
Giải pháp trong trường hợp của bạn rất đơn giản, sử dụng LEFT JOIN
:
select en.*, sf.red, sf.blue, sf.green, sf.yellow
from data1 en left join
data2 sf
on 1=1;
Hoặc, trong Oracle 12C, bạn có thể sử dụng phép nối bên:
select en.*, sf.red, sf.blue, sf.green, sf.yellow
from data1 en left join lateral
data2 sf
on 1=1;
Cả hai trông giống nhau trong trường hợp này, nhưng một phép nối bên cũng có thể được sử dụng cho một truy vấn con tương quan.