mysql - 如何从多个表中选择数据?

标签 mysql select multiple-tables

我有 4 个表,我很难选择数据。

我的 4 个表中有这些字段

t1 -> student_id
  given_name
  user_name

t2 -> school_year
  sem
  class
  student_id
  main_id

t3 -> subject_id
  main_id

t4 -> subject_id
  subject_name

我需要选择 (given_name, subject_name, class & main_id)。怎么办?

我这样试试

SELECT t2.school_year, t2.rp_main_sem, t2.rp_main_class,  t4.name, t4.subject_id, t1.given_name, t1.user_name FROM t1, t2, t3, t4 WHERE t2.school_year = 2011 AND t2.sem = 1 AND t2.class = 'ES3A' AND t3.subject_id = t4.subject_id AND t1.student_id = t2.rp_main_student_id

最佳答案

我猜你需要这样的查询:

SELECT t1.given_name, t4.subject_name, t2.main_id
FROM t1
LEFT JOIN t2 ON t1.student_id = t2.student_id
LEFT JOIN t3 ON t2.main_id = t3.main_id
LEFT JOIN t4 ON t3.subject_id = t4.subject_id

关于mysql - 如何从多个表中选择数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7427754/

相关文章:

c# - 多个添加的实体可能在数据库种子上具有相同的主键

php - 我可以放心地假设此 INSERT 成功吗?

php - 使用 Laravel 从数据库加载数据

mysql - 为什么使用 JOIN 查询进行 UPDATE 比使用 JOIN 查询进行 SELECT 慢得多?

optimization - Hive - 从两个表中抓取而不加入

mysql - 奇怪的having和groupby子句行为生成 "Unknown column in 'having'子句“错误

MySQL WHERE 类似 NoSQL 风格

mysql - 将 SELECT DISTINCT ON 查询从 Postgresql 转换为 MySQL

mysql - 根据另一个表中的不相关字段从一个表中选择字段(具有 id 值的桥接表将它们链接起来)

MySQL:从多个表,子查询中排名?