我的数据库中有四个表 - 一个叫做kursplan,第二个表是kursplan_kurse,第三个表是kursplan_kursraum第四个表是kursplan_trainer。
第一个表格结构:id,club_id,Tag,Kurse_namen,from,to,Kursleiter,kursraum
这里club_id在我的用户表中表示我的用户ID
id | club_id | Tag |Kurse_namen | Kursleiter| kursraum
____________________________________________________________________________________________
1 | 35 | Monday |2 |2 | 4
2 | 35 | tue |3 |3 | 3
3 | 35 | wen |3 |3 | 3
4 | 12 | thu |1 |2 | 4
第二个表格结构:表格名称[kursplan_kurse]
id | club_id | Kurse_namen
______________________________________
1 | 35 | Kurse1
2 | 35 | Kurse2
3 | 35 | Kurse3
4 | 35 | Kurse4
第3表结构:表名[kursplan_kursraum]
id | club_id | kursraum
______________________________________
1 | 35 | kursraum1
2 | 35 | kursraum2
3 | 35 | kursraum3
4 | 35 | kursraum4
第四表结构:表名[kursplan_trainer]
id | club_id | Kursleiter
______________________________________
1 | 35 | Kursleiter1
2 | 35 | Kursleiter2
3 | 35 | Kursleiter3
4 | 35 | Kursleiter4
我的选择查询是
$query = "SELECT * FROM `kursplan` WHERE `club_id` = '35' AND `Tag` = 'Monday' ";
我正在以这种格式提交结果
Kurse_namen | kursraum |Kursleiter |
=====================================
2 | 4 |2 |
现在,我想要实现的是为所有3个表中的get值设置JOIN查询 这是第二,第三,第四桌
我需要这种格式的结果我的意思而不是数字我想要名字
Kurse_namen | kursraum | Kursleiter
______________________________________________
Kurse2 | kursraum4 | Kursleiter2
请帮帮我。
答案 0 :(得分:2)
虽然你的问题不清楚,如果你与联接有关,你可以通过这个sql来理解它。
select t2.Kurse_namen,t3.kursraum,t4.Kursleiter
from table2 t2,table3 t3,table4 t4,table1 t1
where t2.club_id=t3.club_id
and t3.club_id=t4.club_id
and t1.club_id=t2.club_id
and t2.club_id=35
and t1.tag='Monday'
答案 1 :(得分:1)
使用左连接,例如
SELECT `TABLE2 NAME`.`FIELd NAME`, `TABLE3 NAME`.`FIELD NAME` , `TABLE4 NAME`.`FIELD NAME`
FROM `TABLE NAME`
LEFT JOIN `TABLE2`
ON `TABLE2`.`FIELD(UNIQUE DATA EXAMPLE ID)` = `TABLE3`.`FIELD(UNIQUE DATA EXAMPLE ID)` `TABLE4 NAME`.`FIELD NAME(UNIQUE DATA EXAMPLE ID)`
答案 2 :(得分:0)
$query = "SELECT `b`.`Kurse_namen`, `c`.`kursraum`, `d`.`Kursleiter`,
FROM `kursplan` as `a`
JOIN `kursplan_kurse` as `b` ON `b`.`id` = `a`.`Kurse_namen`
JOIN `kursplan_kursraum` as `c` ON `c`.`id` = `a`.`kursraum`
JOIN `kursplan_trainer` as `f` ON `f`.`id` = `a`.`Kursleiter`
WHERE `a`.`club_id` = '35' AND `a`.`Tag` = 'Monday'";
答案 3 :(得分:0)
我认为你必须做INNER JOIN
s
这可能有效:
($query =
)
SELECT kursplan_kurse.Kurse_namen, kursplan_kursraum.kursraum,
kursplan_trainer.Kursleiter FROM `kursplan`
INNER JOIN kursplan
INNER JOIN kursplan_kursraum
INNER JOIN kursplan_trainer
USING(club_id) WHERE `club_id` = '35' AND `Tag` = 'Monday'
答案 4 :(得分:0)
以下查询将输出您需要的数据:
SELECT kk.Kurse_Namen, kr.kursraum, kt.kursleiter FROM kursplan k
LEFT OUTER JOIN kursplan_kurse kk (k.Kurse_namen = kk.id)
LEFT OUTER JOIN kursplan_kursraum kr (k.kursraum = kr.id)
LEFT OUTER JOIN kursplan_trainer kt (k.Kursleiter = kt.id)
WHERE k.club_id = 35
AND Tag = "Monday"