我有一张表是物品表,我以这张表作为主表,把他关联另一张物品维保登记表,可是我的物品表中没有物品维保登记表的id,物品维保登记表中也没有物品表的id,只有物品类型表的id这样怎么关联查询
时间: 2024-03-15 11:45:32 浏览: 87
sql多表关联查询--按照文本例子即可
如果物品表和物品维保登记表没有直接的主外键关联,但是它们都与物品类型表有关联,那么可以通过联结这两张表,再通过联结物品类型表来实现查询。
具体的SQL语句如下:
```sql
SELECT i.*, m.*
FROM item i
INNER JOIN item_type t ON i.item_type_id = t.id
INNER JOIN maintenance m ON t.id = m.item_type_id
WHERE i.item_id = 'xxx';
```
上述语句中,item表示物品表,item_type表示物品类型表,maintenance表示物品维保登记表。假设要查询item_id为'xxx'的物品及其对应的维保登记记录,可以先通过INNER JOIN将item和item_type表联结起来,再通过INNER JOIN将item_type和maintenance表联结起来,最后通过WHERE子句限制条件,筛选出item_id为'xxx'的记录。
这样,就能通过联结两张表来实现查询,即使它们没有直接的主外键关联,而是通过另一张表间接关联。
阅读全文