2013-11-24 65 views
3

我的數據庫中有3個表,分別命名爲items,manufacturersitems_manufacturersmanufacturers擁有包括:與items_manufacturersSQL使用內部連接加入三個表

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 |    | 
+---------------+--------------+------+-----+---------+----------------+ 

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 |    | 
+------------+--------------+------+-----+---------+----------------+ 

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 |    | 
+-----------------+---------------+------+-----+---------+----------------+ 

在我的結果表餘萬t items_iditems_desc,name製造商從manufacturers表和manufacturer_id。我有的關係是

items.id=items_manufacturers.item_id and 
manufacturers.id=items_manufacturers.manufacturer_id. 

我嘗試使用三個表的內部聯接,但不工作。 查詢我試圖

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 

有人好心幫助我,我從很久

+2

查詢看起來OK。當你說它不起作用時,你是什麼意思?你能解釋爲什麼結果不符合你的期望嗎? –

+0

正如吉姆上面所說,我想知道爲什麼不工作?你有什麼錯誤嗎?你有沒有得到任何結果?據我所知,你的查詢似乎對我很好。 – Christos

+0

這讓我好奇,因爲你似乎有一個工作查詢,但你說你卡長時間.. –

回答

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 
+0

您可以聲明圖庫爲什​​麼您認爲重新排列聲明的某些部分(該聲明不會有所作爲),並使用別名可以解決問題嗎? –

+0

不,我解決了它,最後沒有使用連接,只是我選擇了列,並給了where子句。 – user2492854