Truy vấn sau đây cho thấy select *
kết hợp với connect by
và left join
không trả về tất cả các cột, nhưng chỉ sử dụng các cột trong các điều kiện này. Hành vi này hữu ích đối với tôi, vì không được sử dụng select *
khi phát hành, nó rất hữu ích khi yêu cầu dữ liệu.Oracle chọn dấu hoa thị kết nối bằng cách tham gia kết hợp sql-92
with t1 as (
select 1 id, 0 parent, 'ROOT' name from dual
union all
select 2 id, 1 parent, 'CHILD-1' name from dual
union all
select 3 id, 1 parent, 'CHILD-2' name from dual
), t2 as (
select 1 t1id, 'node' special from dual
)
select * from t1
left join t2 on t2.t1id=t1.id
start with id = 2
connect by prior parent = id;
trong khi truy vấn khác trả về tất cả các cột
select * from t1
start with id = 2
connect by prior parent = id;
select * from t1
left join t2 on t2.t1id=t1.id;
tôi không thể tìm thấy tài liệu về chức năng này, là có bất kỳ?
'CHỌN t1. *, T2. * 'Công trình.Không biết tại sao 'SELECT *' thì không. – MT0
và thêm 'WHERE name IS NOT NULL AND (đặc biệt IS NULL HOẶC đặc biệt IS NOT NULL)' sau đó sẽ có nghĩa là các cột đó xuất hiện trong 'SELECT *'. – MT0