У меня есть два sql-запроса, которые я хочу объединить в одном SQL Query и отображать на одной таблице:
SELECT subname,subscribers as sub1 FROM reports_subreport where country ='1' and mp='0' and date ='2013-10-15' and NOT(subname LIKE '%Test%') order by site,subname SELECT subscribers as sub2 FROM reports_subreport where country ='1' and mp='0' and date ='2013-10-08' and NOT(subname LIKE '%Test%') order by site,subname
Должен отобразить что-то вроде этого в таблице:
subname sub1 sub2
ENT 222 202
Не могли бы вы помочь мне здесь, потому что ям новый для mysql и php?
Есть несколько лучших и профессиональных ответов, которые уже были даны, но это лучше понять, что происходит вокруг
SELECT subname, (SELECT subscribers FROM reports_subreport WHERE country ='1' AND mp='0' AND date ='2013-10-15' AND NOT(subname LIKE '%Test%') ORDER BY site,subname LIMIT 1) AS sub1, (SELECT subscribers FROM reports_subreport WHERE country ='1' AND mp='0' AND date ='2013-10-08' AND NOT(subname LIKE '%Test%') ORDER BY site,subname LIMIT 1) AS sub2, FROM reports_subreport WHERE country ='1' AND mp='0' AND date ='2013-10-15' AND NOT(subname LIKE '%Test%') ORDER BY site,subname
Сообщите нам, если это сработает.
SELECT `subname`, CASE WHEN `date`='2013-10-15' THEN `subscribers` ELSE 'NONE' `s1` , CASE WHEN `date`='2013-10-08' THEN `subscribers` ELSE 'NONE' `s2` WHERE `country` ='1' AND `mp`='0' AND NOT(`subname` LIKE '%Test%') ORDER BY `site`,`subname`
Вы можете использовать простой IF
в выборе столбца:
SELECT subname, if(date ='2013-10-15', subscribers) as sub1, if(date ='2013-10-08', subscribers) as sub2 FROM reports_subreport WHERE country ='1' and mp='0' and date IN ('2013-10-15','2013-10-08') and NOT(subname LIKE '%Test%') order by site,subname