我知道连接三个表已经在这里作为主题,但是我不知道如何在我的示例中实现这些...这是我所拥有的:
$id = _GET[ 'id' ]
表1:
mid | name
11 . . . johan
22 . . . zoki
表2:
id | mid | time
1 . . 11 . 1234
1 . . 22.. ..1111
2... ..11.... 1112
表3:
id | num2 | surname
1 . 212 . pogancic
2 . 111 . pajser
我需要什么:从3个表中加载所有内容。我的尝试是:
SELECT *
FROM table2 JOIN
table1
ON table1.mid=table2.mid
WHERE id=$id
但是以这种方式,我无法获得“姓氏” ...也尝试添加另一个JOIN:
SELECT *
FROM table2 JOIN
table1
ON table1.mid=table2.mid JOIN
table3
ON table3.id=table2.id
WHERE id=$id
但没有积极的结果;有什么帮助吗?
编辑:使用WHERE id=$id
无法获得结果;似乎有问题,不是在
答案 0 :(得分:0)
您的查询看起来不错。数据可能有问题。您描述的数据是:
create table table1 (
mid int,
name varchar(20)
);
insert into table1 (mid, name) values (11, 'johan');
insert into table1 (mid, name) values (22, 'zoki');
create table table2 (
id int,
mid int,
time int
);
insert into table2 (id, mid, time) values (1, 11, 1234);
insert into table2 (id, mid, time) values (1, 22, 1111);
insert into table2 (id, mid, time) values (2, 11, 1112);
create table table3 (
id int,
num2 int,
surname varchar(20)
);
insert into table3 (id, num2, surname) values (1, 212, 'pogancic');
insert into table3 (id, num2, surname) values (2, 111, 'pajser');
因此,查询应为:
select t1.*, t2.*, t3.*
from table2 t2
join table1 t1 on t2.mid = t1.mid
join table3 t3 on t3.id = t2.id
结果:
mid name id mid time id num2 surname
--- ----- -- --- ---- -- ---- --------
11 johan 1 11 1234 1 212 pogancic
11 johan 1 11 1234 1 212 pogancic
11 johan 2 11 1112 2 111 pajser
22 zoki 1 22 1111 1 212 pogancic
这是您想要的吗?
答案 1 :(得分:-1)
好,我知道了。感谢@Scott Hunter提醒我。问题是:
WHERE id = $ id-> WHERE table2.id = $ id