SELECT j. * , w. *
FROM tbljobseeker j
INNER JOIN tblworkexp w ON j.id = w.userid
WHERE (
w.company_name LIKE '%xoriant%'
OR w.company_name LIKE '%XORIANT%'
OR w.company_name LIKE '%Xoriant%'
OR w.company_name LIKE '%Xoriant%')
AND (
w.tomonth != 'till'
)
AND (
w.fromyear = (
SELECT w.fromyear
FROM tblworkexp
WHERE w.tomonth != 'till'
ORDER BY w.fromyear DESC
LIMIT 1 , 10)
)
ORDER BY STR_TO_DATE(j.lastModified, '%e-%M-%Y' ) DESC , id DESC
1
A
回答
0
變化是w.fromyear =
到w.fromyear in
。這將解決問題。
爲了解釋,你的限制條款LIMIT 1 , 10
說,讓我從第1條記錄開始記錄10條記錄。
與=
運算符,您只能檢查單個值而不能檢查多個值。要檢查多個值,你需要使用in
運營商像in (val1,val2,val3, ..., valn)
所以,在文章發表的子查詢應該像
AND (
w.fromyear in (
SELECT w.fromyear
FROM tblworkexp
WHERE w.tomonth != 'till'
ORDER BY w.fromyear DESC
LIMIT 1 , 10)
)
0
你分配多個值,其中只有一個是預期。
這將工作,因爲它會檢查現在範圍:
SELECT j. * , w. *
FROM tbljobseeker j
INNER JOIN tblworkexp w ON j.id = w.userid
WHERE (
w.company_name LIKE '%xoriant%'
OR w.company_name LIKE '%XORIANT%'
OR w.company_name LIKE '%Xoriant%'
OR w.company_name LIKE '%Xoriant%')
AND (
w.tomonth != 'till'
)
AND (
w.fromyear in (
SELECT w.fromyear
FROM tblworkexp
WHERE w.tomonth != 'till'
ORDER BY w.fromyear DESC
LIMIT 1 , 10)
)
ORDER BY STR_TO_DATE(j.lastModified, '%e-%M-%Y' ) DESC , id DESC
0
這個表達式:
w.fromyear = (
SELECT w.fromyear
FROM tblworkexp
WHERE w.tomonth != 'till'
ORDER BY w.fromyear DESC
LIMIT 1 , 10)
)
不是做你的期望。它從1的偏移量中取出行。因此,它返回多於一行。也許你打算這一點,但也許你真正的意思是:
limit 10, 1
,或者更明確寫道:
limit 1 offset 10
更重要的是,此子查詢看起來不正確可言,因爲它從來沒有引用內表。所有的參考文獻是w
,外表。事實上,它總是返回外層w.fromyear
,所以比較永遠是真的。
我建議你寫另一個問題,帶有示例數據和期望的結果,以獲得有關SQL本身的幫助。
相關問題
- 1. MySQL查詢 - 子查詢返回多個1行錯誤
- 2. 更新MySQL查詢錯誤「子查詢返回多個1行」
- 3. mysql子查詢返回多於1行查詢錯誤
- 4. MySQL子查詢錯誤錯誤1242(21000):子查詢返回多於1行
- 5. MySQL的 - 「子查詢返回多個1行」 錯誤
- 6. 棘手的MySQL錯誤:子查詢返回多個行
- 7. MySQL的子查詢返回多個1行錯誤「
- 8. MySQL錯誤:子查詢返回多個1行
- 9. 子查詢在mysql中返回多個行錯誤
- 10. MySQL錯誤子查詢返回多個1行
- 11. 子查詢返回多個行 - Mysql
- 12. MySQL:子查詢返回多個行
- 13. 錯誤:子查詢返回多個值
- 14. 錯誤:子查詢返回多個值
- 15. 錯誤:子查詢返回多個值
- 16. 子查詢返回的多個錯誤
- 17. MySql錯誤1242:子查詢返回多個行,但查詢不能使用JOINS
- 18. mysql錯誤:子查詢返回多於1行
- 19. 錯誤代碼:1242子查詢返回多於1行mysql
- 20. MySQL數據庫錯誤:子查詢返回多於一行
- 21. MYSQL - 錯誤:#1242 - 子查詢返回多於1行
- 22. MySql拋出錯誤子查詢返回多於1行
- 23. Mysql Query:表示子查詢返回多於1行的錯誤
- 24. SQL合併更新給子查詢返回多個值錯誤
- 25. MySQL的子查詢返回錯誤
- 26. mysql:子查詢返回多於一行
- 27. Mysql子查詢返回多行
- 28. 子查詢返回多於1行MySQL
- 29. MySQL子查詢 - 返回多於一行
- 30. 子查詢返回的mysql多行
MySQL的大部分實現不區分大小寫 – Strawberry
你是說w.fromyear = [多個值] 而不是預期的w.fromyear = 2001;我現在確實爲你解答了問題。 – Rob