我正在尝试一个mysql联盟,但没有任何返回?下面是一个例子。总计有16个select查询MySQL联合不工作
$url_array = array(
"euro-gbp","euro-aud","euro-usd",
"euro-jpy","gbp-jpy","euro-cad",
"usd-cad","usd-jpy","cad-jpy",
"gbp-usd","aud-usd","gbp-cad",
"aud-cad","aud-jpy","aud-nzd",
"euro-nzd","gbp-aud","gbp-nzd",
"nzd-usd","nzd-cad","nzd-jpy");
foreach($url_array as $urls) {
$sql[]= "SELECT *
FROM `data_analysis_child`
WHERE type='".$urls."'
ORDER BY id DESC
LIMIT 2";
}
$sql = implode(" UNION ",$sql);
SQL结果
SELECT * FROM `data_analysis_child` WHERE type='euro-gbp' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='euro-aud' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='euro-usd' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='euro-jpy' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='gbp-jpy' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='euro-cad' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='usd-cad' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='usd-jpy' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='cad-jpy' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='gbp-usd' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='aud-usd' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='gbp-cad' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='aud-cad' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='aud-jpy' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='aud-nzd' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='euro-nzd' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='gbp-aud' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='gbp-nzd' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='nzd-usd' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='nzd-cad' ORDER BY id DESC LIMIT 2 UNION SELECT * FROM `data_analysis_child` WHERE type='nzd-jpy' ORDER BY id DESC LIMIT 2
我该怎么解决?有没有更好的方法来重组这个查询?
如果没有返回任何内容,那么你没有记录的类型匹配你的where子句条件。运行一些没有联合的查询,你会得到结果吗?看起来你想要定义每种类型的两个最新记录。那是对的吗?如果是这样,你可以使用用户变量来模拟一个rowNumber(),并只写一个带有子查询的查询来获得结果。你确定类型没有空格或其他字符?单个查询是否返回2条记录? – xQbert
是的,当我单独运行查询时,我得到结果 – mdnba50
检查编辑..这是我如何构建查询。 – mdnba50