我的页面每天有超过30个视图,我无法缓存页面(数据必须始终是最新的)。
我有三个MYSQL查询,我想总结一下。 这可能吗?
SELECT *
FROM `meta_holdings`
INNER JOIN coins ON coins.cmc_id = meta_holdings.cmc_id
WHERE `userId` = $userId
LIMIT 0 , 999
SELECT *
FROM `meta_watchlist`
INNER JOIN coins ON coins.cmc_id = meta_watchlist.cmc_id
WHERE `userId` = $userId
LIMIT 0 , 999
SELECT *
FROM `coins`
ORDER BY `coins`.`rank` ASC
LIMIT 0 , 30
很高兴得到任何帮助
答案 0 :(得分:1)
单个查询返回单个数据集。通过查看三个查询,您看起来需要三个数据集。通过查询查询,您无法实现相同的功能。所以它的外观应该没问题,除非你改变了你的要求。或者,您可以查看MySQL的内部缓存。
答案 1 :(得分:0)
//试试这个..
SELECT * FROM `meta_holdings` INNER JOIN coins ON coins.cmc_id = meta_holdings.cmc_id WHERE `userId` = $userId LIMIT 0 , 999
UNION
SELECT * FROM `meta_watchlist` INNER JOIN coins ON coins.cmc_id = meta_watchlist.cmc_id WHERE `userId` = $userId LIMIT 0 , 999
UNION
SELECT * FROM `coins` ORDER BY `coins`.`rank` ASC LIMIT 0 , 30
答案 2 :(得分:0)
如果您要查找硬币表格数据的前30名排名以及meta_holdings,meta_watchlist详细信息,请点击此处查询
SELECT * FROM coins
INNER JOIN meta_holdings ON coins.cmc_id = meta_holdings.cmc_id
INNER JOIN meta_watchlist ON coins.cmc_id = meta_watchlist.cmc_id
WHERE meta_holdings.userId = $userId and meta_watchlist.userId = $userId
ORDER BY `coins`.`rank` ASC
LIMIT 0 , 30