加入返回空列?

Mas*_*rry 0 php mysql join

我从两个表中选择了一个MYSQL查询.第二个表可能不一定具有与第一个表匹配的连接ID.我们以这两个为例:

++++++++++++++++++
table: t1
column: id
column: test_id
column: info

table t2
column: t2id
column: test_id
column: extra_info
++++++++++++++++++
Run Code Online (Sandbox Code Playgroud)

我将以下这些行插入到表中(这只是伪目前的所有伪):

insert into t1 values (1, 4, "asd")
insert into t1 values (2, 25, "dfg")
insert into t2 values (1, 25, "123")
Run Code Online (Sandbox Code Playgroud)

现在我的目标是将两个表连接在一起,但我遇到了连接问题.如果第二个表(t2)似乎没有匹配的行,它会使原始表中的连接列为NULL吗?它为什么这样做?这是一个示例查询:

SELECT * FROM `t1` LEFT JOIN `t2` ON (`t1.test_id` = `t2.test_id`) WHERE `t1.id` = 1;
Run Code Online (Sandbox Code Playgroud)

现在我绝对没有问题,如果它们匹配,但由于某种原因,如果没有存在的行,那么来自t1的test_id被设置为NULL ...我的目标是加入这两个表,如果有东西要加入. 编辑:如果没有任何东西可以加入,那么我想通过将所有t2列设置为NULL或只返回t1数据来从t1返回数据. 我需要做一个子查询吗?如果是的话会是什么?谢谢 :)

hkf*_*hkf 6

用一个INNER JOIN.

SELECT * FROM `t1` 
INNER JOIN `t2` ON (`t1.test_id` = `t2.test_id`) 
WHERE `t1.id` = 1; 
Run Code Online (Sandbox Code Playgroud)

有关JOIN类型的文档:http://dev.mysql.com/doc/refman/5.7/en/join.html