2013-02-12 41 views
0
CREATE TABLE `entity1` (
    `entity_id` varchar(20) NOT NULL DEFAULT '', 
    `name` varchar(20) , 
    `version` varchar(20) , 
    PRIMARY KEY (`entity_id`)); 


CREATE TABLE `ent_att` (
    `att_id` varchar(20) DEFAULT NULL, 
    `name` varchar(20) DEFAULT NULL, 
    `valu` varchar(20) NOT NULL DEFAULT '', 
    PRIMARY KEY (`valu`), 
    FOREIGN KEY (`att_id`) REFERENCES `entity1` (`entity_id`)); 

CREATE TABLE `perf` (
    `ent_id` varchar(20) , 
    `state` varchar(20) , 
    `status` varchar(20) , 
    `perf_id` varchar(20) , 
    FOREIGN KEY (`ent_id`) REFERENCES `entity1` (`entity_id`)); 

第一個表主鍵是其他兩個表的外鍵, 我想從所有表中檢索entity_id的所有數據。什麼是連接3個表的Mysql查詢?

+1

你想每一個實體排? – Bohemian 2013-02-12 10:28:47

回答

1

試試這個:

select et.entity_id,et.name,et.version, 
ett.name as ent_att_name,ett.valu,pf.state,pf.perf_id,pf.status from entity1 et 
inner join ent_att ett 
on et.entity_id=ett.att_id 
inner join perf pf 
on et.entity_id=pf.ent_id