我对 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/