2017-04-26 2 views
0

私はいくつかのサブクエリを含む複雑なmysqlクエリ言語を持っており、私の最終結果は以下の通りです。私はそれを扱っているものがあり、私はそれを解決することができず、これは結果が提示されている方法です。私は、結果が1つの行でのみ表示され、NULLフィールドを参照したくないという形で結果の構造を変更する方法を知りたいと思っています。私はこれはMySQLの結果のフォーマットを変更するには?

select count(*) as userRetentionSameDay, null as 'userRetentionDiffDay' from (SELECT date(`timestamp`), `user_xmpp_login` 
FROM table1 
WHERE DATE(`timestamp`) = CURDATE() - INTERVAL 1 DAY) as res1 
right join (select date(ts), user 
from table2 
WHERE DATE(ts) = CURDATE() - INTERVAL 1 DAY 
and product_id REGEXP ("^(europe+$")) as lej1 
on lej1.user = res1.`user_xmpp_login` 
where res1.`user_xmpp_login` IS not NULL 
union all 
select null as 'userRetentionSameDay', count(*) as userRetentionDiffDay from (SELECT date(`timestamp`), `user_xmpp_login` 
FROM table1 
WHERE DATE(`timestamp`) = CURDATE() - INTERVAL 1 DAY) as res1 
right join (select date(ts), user 
from table2 
WHERE DATE(ts) = CURDATE() - INTERVAL 1 DAY 
and product_id REGEXP ("^(europe+$")) as lej2 
on lej2.user = res1.`user_xmpp_login` 
where res1.`user_xmpp_login` IS NULL; 

mysqlのクエリで

以下 enter image description here

enter image description here

のようなものを意味することをやっての推奨解決策は何ですか?

答えて

0

これを試してください。

SELECT COUNT()userRetentionSameDay AS ( SELECT DATE(timestamp)FROM、user_xmpp_login TABLE1 DATE(timestamp)= CURDATE(FROM)の中から選択A.userRetentionSameDay、B.userRetentionDiffDay - RES1 AS INTERVAL 1 DAY)RIGHT(SELECT DATE(TS)に参加、DATE(TS)= CURDATE()table2の からユーザー - INTERVAL 1 DAY とlej1 AS REGEXP( "^(ヨーロッパ+ $を"))PRODUCT_ID ON lej1.user = res1。user_xmpp_login どこres1。 INTERVAL 1 DAY

- user_xmpp_loginはTABLE1 DATE(timestamp)= CURDATE()から、 user_xmpp_login、(

SELECT DATE(timestamp)から、userRetentionDiffDayとしてnull )A、 ( SELECT COUNT()されていませんRES1 AS

RIGHT JOIN(SELECT DATE(TS)、表2 DATE(TS)= CURDATE()FROM USER - INTERVAL 1 DAY AND product_id REGEXP( "^(europe + $)"

)AS lej2 ON lej2.user = res1。 user_xmpp_login どこにres1。 user_xmpp_login IS NULL

)B;

+0

ありがとうございます、私の問題を説明することができますそれは少しでも説明できますか? –

+0

ユニオンは列ではなく、同じデータからの2つの列に各結果のエイリアス名を使用したい場合は列から選択します。 – MohanaPriyan

+0

上記のクエリでも結合を使用できますが、同じテーブルに対して別の別名を作成する必要があります。 – MohanaPriyan

関連する問題