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