SELECT *
FROM `seriallog` WHERE `lastevent` IN
(SELECT GROUP_CONCAT(CONCAT(' \'', `eventid`, '\''))
FROM `permissions` WHERE `permissions`.`userpkid` = 1)
0
A
回答
3
您可能試圖將int(lastevent
)與串聯字符串(子查詢的結果)進行比較。
這是很難說沒有更多的信息,但是這可能是你想要做什麼:
select *
from seriallog sl
inner join permissions p on sl.lastevent = p.eventid
where p.userpkid = 1
+0
可能想寫這樣的第一行:'SELECT sl。*' – Sonny 2010-06-01 20:12:56
2
你寫它的方式,內部查詢將返回一個字符串像這樣"1, 2, 3"
只行seriallog
與lastevent
列的"1, 2, 3"
恰好相符。
你大概有興趣匹配其值在SET中的任何行。這就是SQL設計的目的;你不必申請任何特殊的工程。下面將工作:
SELECT *
FROM seriallog WHERE lastevent IN
(SELECT eventid FROM permissions WHERE permissions.userpkid = 1)
然而,這將是可取的,而不是寫:
SELECT *
FROM seriallog
WHERE EXISTS (SELECT 1 FROM permissions WHERE eventid = seriallog.lastevent AND permissions.userpkid = 1)
這使得MySQL的對待查詢更像是JOIN,想必更有效地執行它。
0
這是MySQL最優化的格式。一般來說,MySQL不喜歡子查詢。
SELECT * FROM SL seriallog加入 上sl.lastevent權限P = p.eventid WHERE permissions.userpkid = 1
相關問題
- 1. 我想我選擇錯了#CSS3
- 2. 我在哪裏做錯了這個做什麼/爲什麼
- 3. jQuery屬性選擇器 - 我做錯了什麼?
- 4. jquery chained選擇任何線索我做錯了什麼?
- 5. 我哪裏錯了?選擇不在子查詢中的結果
- 6. git rebase,我想我做錯了什麼
- 7. 舊的AVD在哪裏?我應該選擇什麼'屏幕'?
- 8. 我想限制3個以上的選擇框只選一個<option>一次 - 我做錯了什麼?
- 9. jquery選項卡 - 我做錯了什麼?
- 10. jQuery UI可選 - 我做錯了什麼?
- 11. 全選?我究竟做錯了什麼?
- 12. 我在這裏做錯了什麼? [php]
- 13. 「AttributeError」我在這裏做錯了什麼?
- 14. NStimer - 我在這裏做錯了什麼?
- 15. 我在這裏做錯了什麼?
- 16. 我在這裏做錯了什麼
- 17. Java我在這裏做錯了什麼?
- 18. 「我選擇了什麼標籤?」 jQuery中
- 19. 我在做諾言錯了......我在這裏錯過了什麼?
- 20. jQuery選擇選項,更改html內容。我究竟做錯了什麼?
- 21. 什麼是我想要做的CSS選擇器?
- 22. 這個css選擇器做了什麼?
- 23. 我想選擇在SQL
- 24. 選擇從哪裏不在 - 除了
- 25. 我不想選擇隱藏的元素,我該怎麼做?
- 26. 我對GLFW_SAMPLES的選擇實際上做了什麼?
- 27. SQL - 我在做什麼這個「插入選擇」錯誤查詢
- 28. 在flickr上使用CSS選擇器和beautifulsoup很難,我做錯了什麼?
- 29. 爲什麼我UIPickerView選擇
- 30. 這個SQL語句做了什麼?選擇裏面插入?
什麼是你期待得到什麼?你究竟得到了什麼? – 2010-06-01 16:13:24