Mysql 从具有相似ID的表中获取记录

Mysql 从具有相似ID的表中获取记录,mysql,Mysql,我有两张像这样的桌子 uid name 11 Cadman 12 Clive 13 Coleman 14 Chester 第二张桌子 id pa1 pa2 pa3 pa4 4800 11 12 11 14 4801 11 12 13 14 4802 11 12 12 4973 12 13 14 6882 12 12 13 14 6883 11 12 14

我有两张像这样的桌子

   uid name
    11  Cadman
    12  Clive
    13  Coleman
    14  Chester
第二张桌子

id      pa1 pa2 pa3 pa4
4800    11  12  11  14
4801    11  12  13  14
4802    11  12  12  
4973        12  13  14
6882    12  12  13  14
6883    11  12      14
6884    11  13  13  14
6885    11  13  13  14
我想显示姓名而不是ID。任何人可以在此查询中帮助我吗?提前感谢

Create/Populate
SELECT t1.name 
FROM  table1 AS t1
INNER JOIN table2 AS t2 ON t1.row1 = t2.row2
INNER JOIN table2 AS t3 ON t1.row1 = t3.row3
INNER JOIN table2 AS t4 ON t1.row1 = t4.row4
INNER JOIN table2 AS t5 ON t1.row1 = t5.row5
WHERE condn;
查询 创建/填充 查询
只有4个
内部联接
s与同一个表。显然,你需要使用不同的别名。一两个左连接不会杀死你。取决于实际数据。如果数据没有丢失任何内容,则内部将进行查询。请使用相同的表进行内部联接。显然,你需要使用不同的别名。一两个左连接不会杀死你。取决于实际数据。如果数据没有丢失任何内容,则内部将刷新。请您查询它。但是数据与一列不匹配。我们应该为该列显示空值,并显示其余匹配的列。请参阅我的问题。有时某些数据丢失。我将查看。如果存在空值,则联接不会拾取它,因为它不是外部联接。哪些价值观?我看不出你看到了什么Hi Drew Pierce谢谢你的解决方案我想到了一个主意我刚才在你的查询中使用了left join为我工作。但是数据与一列不匹配我们应该为该列显示空值,我们应该显示其余匹配列,请看我的问题有些数据有时缺失我会查看。如果存在空值,则联接不会拾取它,因为它不是外部联接。哪些价值观?我看不出你看到了什么Hi Drew Pierce谢谢你的解决方案我有个主意我刚才用left join在你的查询中为我工作了。
create table nt
(   -- name table
    uid int auto_increment primary key,
    name varchar(100) not null
);

create table it
(   -- id table (sorry my creativity is at a low)
    id int primary key,
    pa1 int not null,
    pa2 int not null,
    pa3 int not null,
    pa4 int not null,
    -- in the constraining kinda mood:
    CONSTRAINT fk_pa1_nt FOREIGN KEY (pa1) REFERENCES nt(uid),
    CONSTRAINT fk_pa2_nt FOREIGN KEY (pa2) REFERENCES nt(uid),
    CONSTRAINT fk_pa3_nt FOREIGN KEY (pa3) REFERENCES nt(uid),
    CONSTRAINT fk_pa4_nt FOREIGN KEY (pa4) REFERENCES nt(uid)
);

insert nt (name) values ('kurt'),('burt'),('curt'),('dirt'),('lert'),('murte'),('qbert');
insert nt (name) values ('jim'),('kim'),('dim'),('sim'),('tim'),('Cadman'),('bim');

insert it(id,pa1,pa2,pa3,pa4) values (4800,11,12,13,14);
insert it(id,pa1,pa2,pa3,pa4) values (4801,3,5,7,9);
select it.id,nt1.name,nt2.name,nt3.name,nt4.name
from it
join nt nt1
on nt1.uid=it.pa1
join nt nt2
on nt2.uid=it.pa2
join nt nt3
on nt3.uid=it.pa3
join nt nt4
on nt4.uid=it.pa4
order by it.id;
+------+------+------+--------+------+
| id   | name | name | name   | name |
+------+------+------+--------+------+
| 4800 | sim  | tim  | Cadman | bim  |
| 4801 | curt | lert | qbert  | kim  |
+------+------+------+--------+------+
2 rows in set (0.00 sec)