mysql_query()不能正常解析sql

WBOY
Freigeben: 2016-06-23 13:57:02
Original
963 Leute haben es durchsucht


一个sql语句,直接放到mysql里运行是正常的
但用php的mysql_query运行该sql后结果却不同,会是mysql_query不能解析的原因吗?




sql如下:



		INSERT INTO analysis.caomei_of_list_pvuv  									(region,isp,uv,pv,date)  									SELECT										tb2.region,tb2.isp,tb2.uv,tb2.pv,'2014-05-14' AS date   									FROM   									(										SELECT 											tb.region,tb.isp, COUNT(tb.mac) AS uv,											SUM(tb.mac_num) AS pv  										FROM 											caomei_20140515.caomei_1 AS tb 										WHERE 											tb.date = '2014-05-14'  										GROUP BY tb.region, tb.isp 									) AS tb2  									LEFT JOIN 									(										SELECT 											tb6.region,tb6.isp,tb6.uv,tb6.pv 										FROM 											analysis.caomei_of_list_pvuv AS tb6 										WHERE 											tb6.date='2014-05-14'   									) AS tb1 																				ON tb2.region = tb1.region 									WHERE 										tb1.region IS NULL  										AND tb2.region IS NOT NULL 									;
Nach dem Login kopieren


回复讨论(解决方案)

NSERT INTO analysis.caomei_of_list_pvuv
(region,isp,uv,pv,date)
SELECT
tb2.region,tb2.isp,tb2.uv,tb2.pv,'2014-05-14' AS date
FROM
(
SELECT
tb.region,tb.isp, COUNT(tb.mac) AS uv,
SUM(tb.mac_num) AS pv
FROM
caomei_20140515.caomei_1 AS tb
WHERE
tb.date = '2014-05-14'
GROUP BY tb.region, tb.isp
) AS tb2
LEFT JOIN
(
SELECT
tb6.region,tb6.isp,tb6.uv,tb6.pv
FROM
analysis.caomei_of_list_pvuv AS tb6
WHERE
tb6.date='2014-05-14'
) AS tb1

ON tb2.region = tb1.region
WHERE
tb1.region IS NULL
AND tb2.region IS NOT NULL

这是不允许的

NSERT INTO analysis.caomei_of_list_pvuv
(region,isp,uv,pv,date)
SELECT
tb2.region,tb2.isp,tb2.uv,tb2.pv,'2014-05-14' AS date
FROM
(
SELECT
tb.region,tb.isp, COUNT(tb.mac) AS uv,
SUM(tb.mac_num) AS pv
FROM
caomei_20140515.caomei_1 AS tb
WHERE
tb.date = '2014-05-14'
GROUP BY tb.region, tb.isp
) AS tb2
LEFT JOIN
(
SELECT
tb6.region,tb6.isp,tb6.uv,tb6.pv
FROM
analysis.caomei_of_list_pvuv AS tb6
WHERE
tb6.date='2014-05-14'
) AS tb1

ON tb2.region = tb1.region
WHERE
tb1.region IS NULL
AND tb2.region IS NOT NULL

这是不允许的



但是mysql是能正常执行得到结果。
php也能执行,只是结果出现偏移了!!

问题不在于是否有语法错
而在于控制逻辑是循环悖论

但我觉得这样应该没有逻辑问题啊,先查出结果。然后将结果写入自己。
最主要是 php运行的结果和mysql运行的结果不同!!

是要尽量避免这种逻辑吗,否则就会出现这种意想不到的结果啊

INSERT INTO a (version)SELECT version FROM a WHERE id=1;
Nach dem Login kopieren

假定第一次执行插入了 1 条
那么第二次执行就会插入 2 条
第三次执行就会插入 4 条

我知道了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage