![](/img/trans.png)
[英]MySQL C API - What is the return value of query that returns zero rows
[英]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.