【问题标题】:Multiple join table in mysqlmysql中的多个连接表
【发布时间】:2014-02-07 03:32:55
【问题描述】:
mysql> 选择 a.tutorial_id、a.tutorial_author、b.tutorial_count -> FROM tutorials_tbl a, tcount_tbl b -> 在哪里 a.tutorial_author = b.tutorial_author; +-------------+-----------------+----------------+ |教程_id |教程作者 |教程计数 | +-------------+-----------------+----------------+ | 1 |约翰·波尔 | 1 | | 3 |桑杰 | 1 | +-------------+-----------------+----------------+ 2 行(0.01 秒) mysql>

这是http://www.tutorialspoint.com/mysql/mysql-using-joins.htm上的mysql连接查询教程。但我需要加入许多表。在那种情况下.. WHERE 声明会是什么样子?请帮忙...

【问题讨论】:

  • 不要在where 子句中使用旧的过时隐式连接。使用显式 JOIN 运算符。如果该教程提倡 20 多年前的联接样式,则可能是时候寻找不同的教程了。

标签: mysql


【解决方案1】:

这是一种非常老式的连接方式。

新奇的方式是这样写:

SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count 
FROM tutorials_tbl a 
INNER JOIN tcount_tbl b ON a.tutorial_author = b.tutorial_author

要添加更多表,您只需添加更多 JOIN 子句。由于您的教程似乎有点过时,这是我见过的关于加入的最佳解释,简单、美观、简短:A Visual Explanation of SQL Joins

【讨论】:

  • +1 链接到JOINs 的视觉解释。检查图表通常更容易。
【解决方案2】:

FROM 子句中,您通过JOIN 关键字确定要加入哪些表,并使用ON 关键字描述要配对的常用列。

SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count 
FROM tutorials_tbl a 
  JOIN tcount_tbl b ON a.tutorial_author = b.tutorial_author

或者你可以使用USING,因为共享列名是相等的:

SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count 
FROM tutorials_tbl a 
  JOIN tcount_tbl b USING(tutorial_author)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多