我有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'和'='進行比較。 –