【发布时间】:2020-08-23 12:43:30
【问题描述】:
我的数据库中有两个表
tb_bengkel,这是tb_bengkel的数据
+------------+--------------+----------------+--------------+
| id_bengkel | nama_bengkel | alamat_bengkel | id_sparepart |
+------------+--------------+----------------+--------------+
| 1 | sejahtera | jl psm | 1,2 |
| 2 | abadi | jl jakarta | 1 |
| 3 | toyota | jl soeta | 3 |
| 4 | honda | jl cikapundung | 1,2,3 |
+------------+--------------+----------------+--------------+
tb_ranking,这是tb_ranking的数据
+------------+--------------+------------------+---------------------+---------+--------------+
| id_ranking | id_kendaraan | total | tanggal | service | id_sparepart |
+------------+--------------+------------------+---------------------+---------+--------------+
| 79 | 12 | 0.77386363636364 | 2020-05-03 11:01:00 | 0 | 1 |
| 80 | 10 | 0.68516666666667 | 2020-05-03 11:01:00 | 0 | 1,2 |
| 81 | 22 | 0.67926571428571 | 2020-05-05 13:01:00 | 0 | 1,2,3 |
| 82 | 11 | 0.61842857142857 | 2020-05-04 13:01:00 | 0 | 2 |
+------------+--------------+------------------+---------------------+---------+--------------+
我在 tb_bengkel 和 tb_ranking 中有字段 id_sparepart,我想选择 tb_bengkel 中的 id_sparepart 是 tb_ranking 中 id_sparepart 的内容的数据
我试试这个查询,
select tb_bengkel.id_bengkel,tb_bengkel.nama_bengkel,tb_bengkel.id_sparepart, tb_ranking.id_ranking,tb_ranking.id_sparepart
from tb_bengkel inner join tb_ranking
on tb_bengkel.id_sparepart=tb_ranking.id_sparepart;
查询结果:
+------------+--------------+--------------+------------+--------------+
| id_bengkel | nama_bengkel | id_sparepart | id_ranking | id_sparepart |
+------------+--------------+--------------+------------+--------------+
| 2 | abadi | 1 | 79 | 1 |
| 1 | sejahtera | 1,2 | 80 | 1,2 |
| 4 | honda | 1,2,3 | 81 | 1,2,3 |
+------------+--------------+--------------+------------+--------------+
但应该出现的数据是 tb_ranking 中的数据,其 id_sparepart 在 tb_bengkel 中可用 例如,id_ranking 79 有 id_sparepart 1 那么应该在
中出现 3+------------+--------------+--------------+------------+--------------+
| id_bengkel | nama_bengkel | id_sparepart | id_ranking | id_sparepart |
+------------+--------------+--------------+------------+--------------+
| 1 | sejahtera | 1,2 | 79 | 1 |
| 2 | abadi | 1 | 79 | 1 |
| 4 | honda | 1,2,3 | 79 | 1 |
+------------+--------------+--------------+------------+--------------+
因为 id_bengkel 有 id_sparepart 1 的可用性
例子二,在id_ranking 82中有id_sparepart 2,那么应该出现的数据就是
+------------+--------------+--------------+------------+--------------+
| id_bengkel | nama_bengkel | id_sparepart | id_ranking | id_sparepart |
+------------+--------------+--------------+------------+--------------+
| 1 | sejahtera | 1,2 | 82 | 2 |
| 4 | honda | 1,2,3 | 82 | 2 |
+------------+--------------+--------------+------------+--------------+
我应该使用什么查询?
【问题讨论】:
标签: mysql sql select phpmyadmin intersect