我有2个表像这样的:SQL多个结果
1. reports: 2. schedule:
| id | data | | rpt | username |
-------|-------------| |------|----------|
| 1110 | aaaaaaaaa | | 1110 | name3 |
| 1120 | bbbbbbbbb | | 1110 | name3 |
| 1130 | ccccccccc | | 1110 | name1 |
| 1140 | ddddddddd | | 1130 | name1 |
| 1150 | eeeeeeeee | | 1140 | name1 |
| 1160 | fffffffff | | 1140 | name2 |
| 1150 | name2 |
| 1160 | name3 |
当输入用户名搜索,我想检查计划表中所有这个名字的出现在报告的IDS(它可能每个报告出现多次,我只需要一次),然后用报告ID和数据得到一个结果表。
所以对于name3
我应该得到:1110 aaaaaaaaa | 1160 fffffffff
而对于name1
:1110 aaaaaaaaa | 1130 ccccccccc | 1140 ddddddddd
我试图与这行代码做到这一点:
SELECT * FROM reports WHERE id=(SELECT DISTINCT rpt FROM schedule WHERE username='name3')
的问题是,在的情况下, name3我收到此错误消息:
[MySQL][ODBC 3.51 Driver][mysqld-5.6.33]Subquery returns more than 1 row
解决这个问题的正确方法是什么?
正如你在日程安排表中有多个带有'name3'的记录,它将返回所有带有'name3'的记录,如果子查询有多行,那么你不能将它与'ID'和'='进行比较。 –