Это запрос, который должен вернуть результат совпадения с найденным потерянным элементом. Согласно моей базе данных ниже, я ожидаю, что она вернет две строки, но возвращается только одна строка. До того, как я добавил вторые строки в tbl_lost_items и tbl_found_items, результатом был пустой набор.
SELECT L.user_id,L.item_type_id,F.found_by FROM tbl_users AS U
JOIN tbl_lost_items AS L ON U.id = L.user_id
JOIN tbl_item_types AS IT ON IT.id = L.item_type_id
JOIN tbl_found_items AS F ON F.item_type_id = IT.id
WHERE U.first_name = F.first_name_in_id AND U.last_name = F.last_name_in_id;
Это результат
+---------+--------------+----------+
| user_id | item_type_id | found_by |
+---------+--------------+----------+
| 6 | 3 | 4 |
+---------+--------------+----------+
1 row in set (0.01 sec)
Это мои таблицы
tbl_users
+----+------------+-----------+
| id | first_name | last_name |
+----+------------+-----------+
| 1 | mohamed | diaby |
| 2 | estern | winluck |
| 3 | adam | kisombe |
| 4 | william | patrick |
| 5 | aisha | diaby |
| 6 | hanna | shange |
+----+------------+-----------+
tbl_found_items
+------------------+-----------------+--------------+----------+
| first_name_in_id | last_name_in_id | item_type_id | found_by |
+------------------+-----------------+--------------+----------+
| mohamed | diaby | 1 | 2 |
| hanna | shange | 3 | 4 |
+------------------+-----------------+--------------+----------+
tbl_item_types
+----+-----------------------+
| id | item_type |
+----+-----------------------+
| 1 | Citizen Identity Card |
| 2 | NHIF |
| 3 | Passport |
| 4 | Voters Card |
+----+-----------------------+
tbl_lost_items
+----+---------+--------------+---------------------+-----------+-----------+-------------+
| id | user_id | item_type_id | timestamp | status | region_id | district_id |
+----+---------+--------------+---------------------+-----------+-----------+-------------+
| 1 | 1 | 1 | 2020-01-26 18:58:04 | Not Found | 6 | 30 |
| 2 | 6 | 3 | 2020-01-27 14:12:19 | Not Found | 11 | 62 |
+----+---------+--------------+---------------------+-----------+-----------+-------------+
Также, когда я удаляю строку в tbl_lost_items и tbl_fite это должно вернуть совпадение, но не появится в результате запроса, а затем повторно ввести ту же информацию снова в эти две таблицы, результат включает совпадение, но затем, если есть новая запись, вставленная в таблицы tbl_lost_items и tbl_found_items, которые должны результат в совпадении совпадение не появляется в результате запроса. Я не могу понять, в чем здесь проблема. Это ошибка в MySQL? Я использую MySQL 8.0.16 на ма c.