国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql子查詢IN中使用LIMIT應用示例

2024-07-24 13:05:20
字體:
來源:轉載
供稿:網友
這兩天項目里出了一個問題,LIMIT使用后報錯。

需求是這樣的,我有3張表,infor信息表,mconfig物料配置表,maaply物料申請表,要求是讀出申請表中哪些人申請哪些物料

于是我先是這樣寫的:

復制代碼 代碼如下:


SELECT infor.name,infor.phone,infor.add,
mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime'
FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig.mid
WHERE mapply.aid
IN (
SELECT aid
FROM `mapply` where state = $state
ORDER BY `atime` , `uid` DESC
LIMIT 0,10
)


結果報錯了

當時沒注意報的什么錯誤,只是看到LIMIT什么的錯誤,于是改了下代碼

復制代碼 代碼如下:


SELECT infor.name,infor.phone,infor.add,
mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime'
FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig.mid
WHERE mapply.aid
IN (
SELECT aid
FROM `mapply` where state = $state
ORDER BY `atime` , `uid` DESC
)
<pre>LIMIT 0,10</pre>


這樣沒有報錯,莫離以為OK了,但是運行后發現,數據有問題

和單純的讀出申請表的內容不一樣,才發現LIMIT的位置放錯了,于是又把LIMIT發在IN里,結果報錯如下

This version of MySQL doesn't yet support ‘LIMIT & IN/ALL/ANY/SOME subquery'

細看才知道,IN里不支持LIMIT。那怎么辦呢?

于是度娘后得知,在IN里再使用一張臨時表,把需要的內容先查出來,

修改后代碼如下:

復制代碼 代碼如下:


SELECT infor.name,infor.phone,infor.add,
mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime'
FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig.mid
WHERE mapply.aid
IN (
SELECT aid
FROM (SELECT `aid` FROM `mapply` where state = $state
ORDER BY `atime` , `uid` DESC
LIMIT 0,10)AS `tp`
)


運行后,問題解決~~~
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 革吉县| 天气| 息烽县| 双柏县| 利川市| 淳化县| 怀柔区| 虎林市| 工布江达县| 石嘴山市| 长汀县| 蒙阴县| 扬州市| 噶尔县| 门源| 阳西县| 礼泉县| 京山县| 南乐县| 汉寿县| 天门市| 本溪市| 永善县| 婺源县| 西乌| 武宣县| 永清县| 日照市| 舟曲县| 德清县| 习水县| 屏山县| 盈江县| 长阳| 错那县| 黑龙江省| 通化市| 宜都市| 浮山县| 嘉黎县| 西乌|