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

首頁 > 數據庫 > MySQL > 正文

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

2020-01-18 23:24:47
字體:
來源:轉載
供稿:網友
這兩天項目里出了一個問題,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 name="code" class="sql">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`
)

運行后,問題解決~~~
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大化| 洪湖市| 茂名市| 都昌县| 神木县| 临颍县| 肥东县| 宝鸡市| 正定县| 河曲县| 呼和浩特市| 密山市| 西畴县| 马龙县| 益阳市| 东乡县| 桦甸市| 叶城县| 武城县| 农安县| 合川市| 宽城| 彭山县| 闽清县| 岳池县| 宁明县| 建水县| 贵阳市| 昌平区| 三亚市| 绥化市| 上饶县| 凤城市| 图木舒克市| 阿城市| 玉门市| 卫辉市| 犍为县| 饶平县| 平塘县| 洛阳市|