内部联接不起作用

时间:2015-05-22 15:20:58

标签: php mysql inner-join

我已经尝试了一切,但没有任何工作。我有两张桌子。具有主键和索引的父表是childcareinfo,密钥是ChildcareID。子表是具有UserID的主键和ChildcareID的外键的用户。该网站设置为使用MM_Username会话变量跟踪用户通过该站点。我创建了以下查询

SELECT *
FROM childcareinfo INNER JOIN users
 ON childcareinfo.ChildcareID = users.ChildcareID

但查询会提取所有托儿所,而不仅仅是与用户相关的托儿所。然后显示childcareinfo表中第一条记录的信息,而不是相关的托儿所。我研究并尝试了下面列出的查询,但我被告知存在语法错误。

SELECT *
FROM 'users' JOIN 'childcareinfo'
ON 'childcareinfo'.'ChildcareID' = 'users'.'ChildcareID'
Where 'users'.UserName' = $_SESSION[user]'

提前非常感谢你。这是本网站的唯一一站,并持续了三个星期。我需要帮助来跳过这个障碍。干杯!

1 个答案:

答案 0 :(得分:0)

我会用这种方式重写你的第二个查询:

SELECT *
FROM users JOIN childcareinfo
ON childcareinfo.ChildcareID = users.ChildcareID
Where users.UserName = "$_SESSION['user']"

无论如何请注意你在这里输了一个拼写错误:

Where 'users'.UserName' = $_SESSION[user]'
你应该写的:

Where 'users'.'UserName' = "$_SESSION['user']"

实际上你应该使用'或'来包装你传递给数据库的字符串,而不是表/列名。还有数组(比如$ _SESSION),如果你在关联数组中引用一个键,你需要用'包装它' '。只有索引可以没有。

最后但并非最不重要的是,您正在执行一个MYSQL查询,该查询独立于您用于访问mysql的工具(PHPMYADMIN)或您编写代码的IDE(DREAMWEAVER)