在php-mysql中加入2个或更多表

时间:2011-09-19 14:26:49

标签: php mysql database-design join foreign-keys

我想在我的酒店管理项目中加入2个或更多表,那么加入表的步骤是什么? 是否有必要在我们需要加入的每个表中提供外键或在没有外键的情况下工作?

4 个答案:

答案 0 :(得分:1)

步骤如下:

  1. 撰写JOIN个查询。你做完了!
  2. 您可以JOIN使用既不是主键也不是外键的列。如,

    select *
    from (select 'x' as a) t1
    inner join (select 'x' as a) t2 on t1.a = t2.a
    

    查询具有JOIN子句和ON子句。 JOIN子句显示what type of JOIN以及哪些表格为JOINON子句指定JOIN上的哪些列。

答案 1 :(得分:0)

不,您不需要专门使用外键,尽管您可能会使用等效键。 (注意,默认引擎MyISAM不支持外键,如果你想使用它们,请使用InnoDB或$ otherEngine)。

对于联接我建议阅读the documentation on joins

答案 2 :(得分:0)

简单连接,没有冗余ID输出:

SELECT * FROM foo JOIN bar USING(id);

假设id列在两个表中都定义为primary,因此创建了要加入的表之间的关系。

但是,根据您的标准和要求,有不同类型的连接(自然,直,左,右)。查看MySQL API手册,它将为您提供足够的信息。

答案 3 :(得分:-1)

我认为你的情况(如顶部帖子中所述),创建一个PHP文件以分别获取每个表的guest虚拟机数据会更有意义,至少对我来说似乎是JOINing 6个表一起太麻烦,实际上也不是很有效。