php,mysql连接表列与另一个表行

时间:2016-09-14 18:59:12

标签: php mysql

我有问题从两个数据库表中获取结果。这就是我所拥有的:

table A: 'courses' 

math  | history  | geography  | computer 
1     | 2        | 3          | 4 

和表B

user_id | classroom_id | course 
1       | 5            | 3
1       | 5            | 4
1       | 6            | 2

我为每个循环返回了表A,但我想检查用户1在任何表格列上返回true或false的课程。 任何帮助赞赏。 我需要帮助而不是反对票:(

1 个答案:

答案 0 :(得分:1)

我相信您的数据库设置错误。你想要的是像

Table_A:
PKEY |    Course

1    |    Math
2    |    History
3    |    Geography
4    |    Computer



Table_B:
user_id | classroom_id | course 
1       | 5            | 3
1       | 5            | 4
1       | 6            | 2

然后你可以做类似

的事情
SELECT 
TableA.PKEY,
TableA.Course,
TableB.user_id,
TableB.classroom_id,
TableB.course,
FROM TableA
LEFT JOIN TableB
ON TableA.PKEY = TableB.course

^^这将从BOTH表中返回数据。

你看到这一行

ON TableA.PKEY = TableB.course

                    ^^This is called the foreign key.

BIG GOTCHA:确保两个^^^的列设置完全相同。例如,IF TableA.PKEY是UNSIGNED INT(10),那么TableB.course也必须是UNSIGNED INT(10)。它们必须相同才能使连接正常工作。