gpt4 book ai didi

mysql - 我的任务是获取两个选择按列合并的一个查询结果

转载 作者:行者123 更新时间:2023-11-29 03:41:51 25 4
gpt4 key购买 nike

第一个查询:

SELECT COUNT(*)
FROM `test` t ,`user_test` ut,`user` u
WHERE test_type_id = 1
AND t.created_on >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND t.created_on < CURDATE()
AND t.id = ut.test_id
AND u.id = ut.user_id
AND u.user_account_type_id != X
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'

第二个查询:

SELECT COALESCE(SUM(IF(tt.type = 0, 1, 0)), 0) aaa, COALESCE(SUM(IF(tt.type = 1, 1, 0)), 0) bbb 
FROM transaction_test tt ,USER u
WHERE tt.created_on >= DATE_SUB(CURDATE(), INTERVAL 10000 DAY) AND tt.created_on < CURDATE()
AND u.id = tt.user_id
AND u.user_account_type_id != X
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'

必须从一个单一的选择中获得结果我试试这个

SELECT COALESCE(SUM(IF(tt.type = 0, 1, 0)), 0) Email, COALESCE(SUM(IF(tt.type = 1, 1, 0)), 0) SMS ,(
SELECT COUNT(*)
FROM `test` t ,`user_test` ut,`user` u
WHERE test_type_id = 1
AND t.created_on >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND t.created_on < CURDATE()
AND t.id = ut.test_id
AND u.id = ut.user_id
AND u.user_account_type_id != X
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
)
FROM transaction_test tt ,USER u
WHERE tt.created_on >= DATE_SUB(CURDATE(), INTERVAL 10000 DAY) AND tt.created_on < CURDATE()
AND u.id = tt.user_id
AND u.user_account_type_id != X
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'

我对使用两次并不满意

AND u.user_account_type_id != X
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...'

这部分任何人都可以建议如何避免这种情况?提前致谢

最佳答案

试一试我已经加入了你的两个查询,因为在查询中你有相同的条件,我已经使用 INNER JOIN 来确保两个表都有数据,如果你想从中获取数据右表或左表相应地更改为 RIGHT JOINLEFT JOIN

SELECT COUNT(*) ,COALESCE(SUM(IF(tt.type = 0, 1, 0)), 0) aaa, COALESCE(SUM(IF(tt.type = 1, 1, 0)), 0) bbb 
FROM `test` t ,
INNER JOIN `user_test` ut ON (t.id = ut.test_id)
INNER JOIN `user` u ON (u.id = ut.user_id)
INNER JOIN `transaction_test` tt ON (u.id = tt.user_id)
WHERE test_type_id = 1
AND t.created_on >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND t.created_on < CURDATE()
AND u.user_account_type_id != X
AND u.usr NOT LIKE '%...' AND u.usr NOT LIKE '%...' AND u.usr NOT LIKE '%...'
AND u.usr NOT LIKE '%...' AND u.usr NOT LIKE '%...' AND u.usr NOT LIKE '%...'

希望一切顺利

关于mysql - 我的任务是获取两个选择按列合并的一个查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12918329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com