加入两个没有关系的SQL表?

时间:2012-02-12 00:05:18

标签: sql join joomla

我在MySQL数据库中有2个表。一个是遗产表(房东),有一个字段('landlord_id')。

另一个是Joomla! 1.7表名为jos_users,需要确保所有用户都是有效的Joomla!用户可以登录等。它有一个名为'id'的字段。

作为一个例子,我在landlords.landlord_id = 2(John Smith)中有一条现有记录,但是没有相应的jos_user.id记录,因为地主表预先存在于jos_users之前。

有没有办法使用SQL建立/创建两者之间的关系?

或者

我是否需要为房东创建jos_user记录(如果是,如何?)?

非常感谢任何建议或示例。

2 个答案:

答案 0 :(得分:2)

您必须将数据从旧系统移植到新系统。我假设你正在使用Joomla的用户登录系统吗?在这种情况下,如果您理解,数据必须采用joomla正在寻找的格式和位置。

如果没有复制数据,您无法真正创建“链接”。

我建议您做的是在房东的桌子上添加一个字段joomla_user_id。这样,您可以将joomla用户与旧系统中的房东记录相关联。这样您就不必手动移植任何东西,并且您可以构建应用程序以根据其joomla用户ID获取房东数据。

答案 1 :(得分:1)

你实际上可以加入他们

SELECT
  lls.landlord_id,
  jus.id
FROM landlords lls
LEFT JOIN jos_users jus ON lls.landlord_id=jus.id

将返回所有房东并加入匹配的Joomla用户。如果给定的房东没有Joomla用户,则jus.id将为NULL。不匹配的条目为NULL,由于LEFT JOIN,因此不会从结果集中删除。简单地说,LEFT JOIN保留左表中的所有行,如果匹配失败则插入NULL

样品:

landlord_id  |  id
          1  |    1
          2  |    2
          3  | NULL