sql使用内部联接连接三个表

use*_*854 3 mysql sql join

在我的数据库中,我有3个名为的表items,manufacturersitems_manufacturers.manufacturers有一个HAS:很多关系items_manufacturers

我的items桌子

 +---------------+--------------+------+-----+---------+----------------+
| Field         | Type         | Null | Key | Default | Extra          |
+---------------+--------------+------+-----+---------+----------------+
| id            | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| code          | varchar(25)  | NO   | MUL | NULL    |                |
| item_category | varchar(100) | NO   |     | NULL    |                |
| item_desc     | varchar(500) | NO   |     | NULL    |                |
| reorder_point | int(11)      | NO   |     | NULL    |                |
| unit          | varchar(45)  | NO   |     | NULL    |                |
+---------------+--------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)

我的manufacturers桌子

+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| code       | varchar(25)  | NO   |     | NULL    |                |
| name       | varchar(250) | NO   |     | NULL    |                |
| address    | varchar(750) | NO   |     | NULL    |                |
| contact_no | varchar(50)  | NO   |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)

我的items_manufacturers桌子

+-----------------+---------------+------+-----+---------+----------------+
| Field           | Type          | Null | Key | Default | Extra          |
+-----------------+---------------+------+-----+---------+----------------+
| id              | bigint(20)    | NO   | PRI | NULL    | auto_increment |
| item_id         | bigint(20)    | NO   | MUL | NULL    |                |
| manufacturer_id | bigint(20)    | NO   | MUL | NULL    |                |
| unit_cost       | decimal(20,2) | NO   |     | NULL    |                |
| vendor_id       | bigint(20)    | NO   |     | NULL    |                |
+-----------------+---------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)

在我的结果表我想items_id,items_desc,name制造商,从manufacturersmanufacturer_id.我的关系是

items.id=items_manufacturers.item_id and
manufacturers.id=items_manufacturers.manufacturer_id.
Run Code Online (Sandbox Code Playgroud)

我尝试使用三个表的内连接但不工作.我试过的查询

select 
  items_manufacturers.id,
  items.item_desc,
  item_manufacturers.manufacturer_id,
  manufacturer.name 
from items_manufacturers 
INNER JOIN items ON items_manufacturers.item_id=items.id 
INNER JOIN manufacturers ON items_manufacturers.manufacturer_id=manufacturers.id 
Run Code Online (Sandbox Code Playgroud)

有人帮我这个,很长一段时间我都被困住了

Abh*_*Dey 5

我使用了以下代码,得到了你想要获得的结果.此代码可以解决您的问题:

select a.name,b.manufacturer_id,c.id,c.item_desc 
from manufacturers as a
inner join 
item_manufacturers as b
on b.manufacturer_id=a.id 
inner join item as c 
on c.id=b.item_id
Run Code Online (Sandbox Code Playgroud)