我有2个表,一个是另一个的扩展,所以它目前是一个简单的一对一关系(这可能在将来变为一对多)。我需要从一个表连接到另一个表,以从扩展名中的另一列中提取值。
因此表A包含基本详细信息,包括id和表B使用对表A中Id列的FK引用。我需要从表B中提取列X.
为了增加复杂性,有时在表B中不会有匹配的条目,但在这种情况下,它需要返回null。 X的值也可以为空。
我知道我可以使用左外连接但是有更有效的方法来执行连接吗?
答案 0 :(得分:1)
左外连接就是这样。为了使其最有效,请确保索引表B中的FK列。索引将超快。
您不需要为此查询索引表A中的主键(并且大多数数据库已经将主键索引)。
用于创建索引的MySQL语法:
CREATE INDEX `fast_lookups` ON `table_b` (`col_name`);
你可以任意命名,我选择了“fast_lookups。”