mysql - 如何连接多个表?

标签 mysql join

我对 JOIN 表的工作方式感到很困惑。我试图阅读所有可能的文档,但没有得到任何好处。

我正在尝试对各种表执行大型 SELECT 以获取特定用户的所有数据。下面的查询似乎永远循环,没有任何好的结果。

谁能以最简单的方式解释如何以正确的方式执行JOIN? 谢谢

SELECT user.id_user, name, surname, email, password, status, phone, address, city, zip_code, company_name, cf, piva, public, icon, description, note, web, facebook_id, facebook_token, twitter_id, twitter_token, linkedin_id, linkedin_token, ip, date, link, confirmed, newsletter, legal_validation FROM user,user_addfields_anagraphic,user_addfields_legal,user_addfields_public,user_addfields_social,user_registration WHERE user.id_user = '43534534534'

最佳答案

您没有以任何有意义的方式将表格连接在一起,因此您最终得到了笛卡尔积,其中每一行都与其他每一行连接在一起。

您必须在每个表中找到允许然后相互关联的列(我们正在处理的是关系数据库)。

所以如果你想知道一个部门有哪些员工,你可以这样做

select name, department 
from employee emp join Department d 
on emp.dept_no = d.dept_no
where dept.description = "SALES"

要识别的关键是连接条件 - 它指定如何将一个表的内容与另一个表相关联。

您的陈述非常复杂 - 我建议将其分解成更小的 block 。让两个表连接工作,然后逐渐添加其他表。

关于mysql - 如何连接多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17249868/

相关文章:

MySQL 连接性能与相关查询

mysql "and"结果集中的逻辑

c# - 具有条件连接和非匿名返回的 LINQ 查询

mysql - 根据另一个字段插入序号 - MySQL

php - 我可以使用MySql CSV存储引擎在php程序中捕获CSV吗

mysql - 从条件中排除某些行

php - 来自 PHP 脚本的 PHP 和 MySQL 的确切版本是什么?

c - 线程终止问题(C 编程)

sql-server - SUM 和 JOIN 显示在一条记录中

mysql - MariaDB 插入到哪里