0

MySQL - 工作台(PHP):

表:

  1. TUsers(与 TCompanies 的一对多关系):
    • TUsers_CompanyID(外键)
    • TUsers_UserName
    • TUsers_UserPassword
    • TUsers_ID(唯一)
  2. T公司:
    • TCompanies_CompanyName
    • TCompanies_CompanyContactNumber
    • TCompanies_CompanyAddress
    • TCompanies_ID(唯一)

是否可以在不使用 JOIN 或 INNER JOIN 查询命令的情况下链接关系数据库中的多个表,而无需在表中复制数据?

因此,甚至可以用另一种方式来创建使一个表“指向”另一个表的数据的关系。

这样人们就可以查询以下内容并一次成功地从两个表中检索所有数据:

MySQL:从 TUsers 中选择 *;

见上面的例子..

4

2 回答 2

1

您可以在不“出现”的情况下使用连接(即,单词 JOIN 不会出现在查询中),但 MySQL 仍将执行JOIN...

SELECT *
FROM TUsers, TCompanies 
WHERE TUsers_CompanyID=TCompanies_ID;
于 2012-07-10T11:02:34.737 回答
0

您将无法避免必须使用 aJOIN来显示数据,但您可能想要做的是创建所谓的VIEW,这样您实际上不必在JOIN任何时候输入命令您要查询用户数据:

CREATE VIEW UsersView AS
SELECT *
FROM TUsers a
INNER JOIN TCompanies b ON a.TUsers_CompanyID = b.TCompanies_ID

然后,一旦定义了视图,您就可以UsersView像这样选择:

SELECT * FROM UsersView

...它会返回用户信息以及加​​入的公司信息。您可以将视图视为简化(或“压缩”)更复杂查询的一种方式,因为在底层,它实际上与以下内容相同:

SELECT *
FROM
(
    SELECT *
    FROM TUsers a
    INNER JOIN TCompanies b ON a.TUsers_CompanyID = b.TCompanies_ID
) UsersView
于 2012-07-10T11:20:59.447 回答