[英]What type of join do I need?
对于注册页面,用户可以在其中输入他们的联系信息以及用户名和密码。 我有两个表,一个表用于用户名和密码,并带有一个名为contactinfo的外键,而我要与用户表一起加入的联系信息表? 外键和主键都应设置为自动递增吗?
谢谢
将两个主键都设置为自动递增。 将用户表中的外键添加到联系信息表中,然后完成。 外键永远不会自动递增,毕竟它们是要引用另一个表中的值。
请注意,如果您使用的是像Doctrine这样的ORM,则将自动为您处理user
和contactinformation
之间的关系。 否则,您应该首先插入您的联系信息,获取其生成的主键(例如,通过mysql_insert_id
),然后将其插入到user
表中。
用户表应具有:
另一个表具有:
您应该使用“左联接”
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.