对于用户输入其联系信息及其用户名和密码的注册页面。我有两个表,一个是用户名和密码,一个外键叫做contactinfo,一个联系信息表,我想加入用户表?外键和主键是否也应设置为自动递增?
由于
答案 0 :(得分:2)
将两个主键设置为自动递增。将用户表中的外键添加到联系信息表并完成。外键从不自动递增,毕竟它们是引用到另一个表中的值。
请注意,如果您使用像Doctrine这样的ORM,则会自动为您处理user
和contactinformation
之间的关系。否则,您应首先插入您的联系信息,获取其生成的主键(例如,通过mysql_insert_id
),然后执行插入user
表。
答案 1 :(得分:1)
用户的表应该有:
另一张表有:
你应该使用“左连接”
LEFT JOIN关键字返回左表(table_name1)中的所有行,即使右表(table_name2)中没有匹配项也是如此。 (W3Schools的)
所以我们将用户表作为“左表”,将信息作为“右表”。用户可能尚未设置信息,但他/她有一个帐户。所以我们有一个帐户(“左”)但不一定是信息(“右”) - LEFT JOIN听起来像是工作的连接
你的sql应该大致看起来像
SELECT "columns" FROM table1
LEFT JOIN table2 ON table1.userid = table2.userid
//where "columns" are the columns you want to get
//from the tables in "table.column" notation like: user.username or info.mobile