简体   繁体   中英

Mysql query of multiple tables joined

I have the following tables:

machine_machine
id    |     machineid
1     |     EE100034442

item_item
id    |     upc    |    name
2     |    10001   |   Snickers

machine_setup
id    |  machine_id   |    selection    |   item_id
3     |     1         |       A1        |     1

Im trying to get the following output by joining the tables.

machine_setup.machine_id=machine_machine.machineid, machine_setup.selection, item_item.upc, item_item.name

EE100034442  A1  10001  Snickers

Table machine_setup will by the main referenced table as it has multiple selection for each machine_id.

I'm not quite sure I understand the question, but the sql you want is like;

Select machine1.machineid, setup.Selection, item.upc, item.name
From Machine_machine machine1 --Set alias for the table
Inner Join machine_setup setup on setup.machine_id = machine1.id --This looks like a link table to me
Inner Join item_item item on setup.item_id = item.id -- in your example this wouldn't link as item_id is  1 in the machine_setup

In your example the machine_setup item_id is set to 1, which means it wouldn't link to the item_item table. i'm assuming this is a mistake. Let me know if you need more information.

Based on the only id's I can see at the moment to join on, consider this:

create table machine_machine
(   id int auto_increment primary key,
    machineid varchar(50) not null
);

create table item_item
(   id int auto_increment primary key,
    upc varchar(30) not null,
    name varchar(100) not null
);

create table machine_setup
(   id int auto_increment primary key,
    machine_id int not null,
    selection varchar(30) not null
);

insert machine_machine(machineid) values ('EE100034442');
insert item_item(upc,name) values ('10001','Snickers');
insert machine_setup(machine_id,selection) values (1,'A1'),(1,'A2'),(1,'A(n)');

select mm.machineid,ms.selection,ii.upc,ii.name 
from machine_setup ms 
join machine_machine mm 
on mm.id=ms.machine_id 
join item_item ii 
on ii.id=ms.machine_id;
+-------------+-----------+-------+----------+
| machineid   | selection | upc   | name     |
+-------------+-----------+-------+----------+
| EE100034442 | A1        | 10001 | Snickers |
| EE100034442 | A2        | 10001 | Snickers |
| EE100034442 | A(n)      | 10001 | Snickers |
+-------------+-----------+-------+----------+

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM