簡體   English   中英

子查詢返回值,但我的查詢為零行

[英]Subquery return value but my query zero rows

我在t1中有表t1和t2沒有記錄,但是t2有行。

表腳本是

create table t1 ( n1 integer,n3 integer,n4 integer);

create table t2 (n2 integer);

insert into t2 value(1);

select n1,t22.n2 from t1 ,(select n2 from t2) t22;
null

select n2 from t2;
10

我應該得到價值觀

select n1,n3,n4,t22.n2 from t1 ,(select n2 from t2) t22;

output :- 0,0,0,10

您似乎想要的是從t2返回的值,無論t1上是否有(匹配?)行。

如果是這樣,它將做到:-

SELECT t1.n1, t1.n3, t1.n4, t22.n2 
FROM (SELECT n2 FROM t2) t22
LEFT OUTER JOIN t1;

但是,如果您希望從t1獲得項目(如果t2沒有匹配行),並且從t2獲得任何項目(如果t1沒有匹配行),則通常需要完全外部聯接。 MySQL不支持完整的外部聯接,但是您可以使用2個LEFT JOINs和UNIONing結果一起模擬它們。

像這樣的東西:

SELECT t1.n1, t1.n3, t1.n4, t22.n2 
FROM (SELECT n2 FROM t2) t22
LEFT OUTER JOIN t1
UNION 
SELECT t1.n1, t1.n3, t1.n4, t22.n2 
FROM t1
LEFT OUTER JOIN (SELECT n2 FROM t2) t22;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM