Mysql 如果记录不存在,请选择null

Mysql 如果记录不存在,请选择null,mysql,Mysql,我想从第三个表中选择一个值,其中第一个表中的值等于第三个表中的值。第三个表中的最后一个值可能不存在 我有以下mysql查询: $query = "SELECT ft.value1, ft.value2, st.value3, st.value4, tt.valueWantedMightNotExist FROM first_table ft, second_table st, third_table tt WHERE ft.value5 = st.va

我想从第三个表中选择一个值,其中第一个表中的值等于第三个表中的值。第三个表中的最后一个值可能不存在

我有以下mysql查询:

$query = "SELECT ft.value1, ft.value2, st.value3, st.value4, tt.valueWantedMightNotExist 
          FROM first_table ft, second_table st, third_table tt 
          WHERE ft.value5 = st.value5" AND ft.something = tt.anothersomething;
此查询仅在值存在时返回结果。否则它什么也不返回。我也试过了,但最后也搞砸了。有人能解释一下,如果记录不存在,我如何返回空值?非常感谢…

您需要左键加入。这正是你想要的

默认情况下,也就是说,如果你只使用逗号,你会得到一个内部连接,只有当行的两边都匹配时,它才会给你行;但是左连接将在左侧提供所有内容,在没有匹配项的右侧提供空值

SELECT ft.value1, ft.value2, st.value3, st.value4, tt.valueWantedMightNotExist
FROM first_table ft
INNER JOIN second_table st ON ft.value5 = st.value5
LEFT JOIN third_table tt ON ft.something = tt.anothersomething
还有一个右连接,其目的是让精明的读者练习:

你应该看看。排名靠前的答案使用左外部联接,但至少在MySQL中,外部联接没有效果。第二高的答案有一幅漂亮的图画,这对直觉很有帮助。

你需要一个左连接。这正是你想要的

默认情况下,也就是说,如果你只使用逗号,你会得到一个内部连接,只有当行的两边都匹配时,它才会给你行;但是左连接将在左侧提供所有内容,在没有匹配项的右侧提供空值

SELECT ft.value1, ft.value2, st.value3, st.value4, tt.valueWantedMightNotExist
FROM first_table ft
INNER JOIN second_table st ON ft.value5 = st.value5
LEFT JOIN third_table tt ON ft.something = tt.anothersomething
还有一个右连接,其目的是让精明的读者练习:

你应该看看。排名靠前的答案使用左外部联接,但至少在MySQL中,外部联接没有效果。第二高的答案有一幅很好的图片,这对直觉很有帮助。

如果想要得到不匹配的行,需要使用左连接

SELECT ft.value1, ft.value2, st.value3, st.value4, tt.valueWantedMightNotExist
FROM first_table ft
INNER JOIN second_table st ON ft.value5 = st.value5
LEFT JOIN third_table tt ON ft.something = tt.anothersomething
如果要获取不匹配的行,则需要使用LEFT JOIN

SELECT ft.value1, ft.value2, st.value3, st.value4, tt.valueWantedMightNotExist
FROM first_table ft
INNER JOIN second_table st ON ft.value5 = st.value5
LEFT JOIN third_table tt ON ft.something = tt.anothersomething

那个引号是什么意思?这些表格是如何相互关联的?我认为您需要从PHP和MySQL的简单介绍开始。这个引号的作用是什么?这些表格是如何相互关联的?我认为您需要从简单介绍PHP和MySQL开始。是否必须更改整个查询语法?我不能保持它的相似性,然后在末尾添加左连接吗?不,不是。但是你应该学会写ANSI连接,忘记旧的隐式连接。我是BARMAR做的。TYVM MA mani是否必须更改查询的整个语法?我不能保持它的相似性,然后在末尾添加左连接吗?不,不是。但是你应该学会写ANSI连接,忘记旧的隐式连接。我是BARMAR做的。马文