Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从3-4个表中选择的SQL查询_Mysql_Sql_Drop Down Menu - Fatal编程技术网

Mysql 从3-4个表中选择的SQL查询

Mysql 从3-4个表中选择的SQL查询,mysql,sql,drop-down-menu,Mysql,Sql,Drop Down Menu,请在下面找到我已设置的表结构和正在运行的查询的链接 目前的结果是只显示名字、姓氏和“教育结束”。但是所有的选项id及其相关的lang\u值仍然显示为“NULL” 预期结果: 有什么建议可以解决吗 下面是您正在使用的查询: SELECT d.pf_firstname, d.pf_lastname, f.field_id, fl.option_id, d.pf_education_finished, fl.lang_value FROM phpbb_profile_fields_data d L

请在下面找到我已设置的表结构和正在运行的查询的链接

目前的结果是只显示名字、姓氏和“教育结束”。但是所有的选项id及其相关的lang\u值仍然显示为“NULL”

预期结果:


有什么建议可以解决吗

下面是您正在使用的查询:

SELECT d.pf_firstname, d.pf_lastname, f.field_id, fl.option_id,
d.pf_education_finished, fl.lang_value
FROM phpbb_profile_fields_data d
LEFT JOIN phpbb_profile_fields f
ON d.pf_education_finished = f.field_name
LEFT JOIN phpbb_profile_fields_lang fl
ON f.field_id = fl.field_id
ORDER BY d.pf_lastname ASC
获取
null
值的原因是:

LEFT JOIN phpbb_profile_fields f
ON d.pf_education_finished = f.field_name
您正试图在一个表的pfu教育结束(
int
)字段和另一个表的字段名称(
int
)字段上加入
。此外,也没有匹配的值(例如,
pf_education_finished
包含数字,而
字段名称
为“education finished”)

如果希望查询返回某些内容,则需要在
字段id
上加入
phpbb\u profile\u字段
需要具有匹配字段id的一些记录,例如:

SELECT d.pf_firstname, d.pf_lastname, f.field_id, fl.option_id,
d.pf_education_finished, fl.lang_value
FROM phpbb_profile_fields_data d
LEFT JOIN phpbb_profile_fields f
ON d.pf_education_finished = f.field_id
LEFT JOIN phpbb_profile_fields_lang fl
ON f.field_id = fl.field_id
ORDER BY d.pf_lastname ASC

以下是更新的

以下是您正在使用的查询:

SELECT d.pf_firstname, d.pf_lastname, f.field_id, fl.option_id,
d.pf_education_finished, fl.lang_value
FROM phpbb_profile_fields_data d
LEFT JOIN phpbb_profile_fields f
ON d.pf_education_finished = f.field_name
LEFT JOIN phpbb_profile_fields_lang fl
ON f.field_id = fl.field_id
ORDER BY d.pf_lastname ASC
SELECT d.pf_firstname, d.pf_lastname, f.field_id, fl.option_id,
d.pf_education_finished, fl.lang_value
FROM phpbb_profile_fields_lang fl 
inner JOIN phpbb_profile_fields f
ON f.field_id = fl.field_id
inner JOIN phpbb_profile_fields_data d
ON f.field_id = fl.field_id
ORDER BY d.pf_lastname ASC
获取
null
值的原因是:

LEFT JOIN phpbb_profile_fields f
ON d.pf_education_finished = f.field_name
您正试图在一个表的pfu教育结束(
int
)字段和另一个表的字段名称(
int
)字段上加入
。此外,也没有匹配的值(例如,
pf_education_finished
包含数字,而
字段名称
为“education finished”)

如果希望查询返回某些内容,则需要在
字段id
上加入
phpbb\u profile\u字段
需要具有匹配字段id的一些记录,例如:

SELECT d.pf_firstname, d.pf_lastname, f.field_id, fl.option_id,
d.pf_education_finished, fl.lang_value
FROM phpbb_profile_fields_data d
LEFT JOIN phpbb_profile_fields f
ON d.pf_education_finished = f.field_id
LEFT JOIN phpbb_profile_fields_lang fl
ON f.field_id = fl.field_id
ORDER BY d.pf_lastname ASC
以下是更新的

SELECT d.pf_firstname, d.pf_lastname, f.field_id, fl.option_id,
d.pf_education_finished, fl.lang_value
FROM phpbb_profile_fields_lang fl 
inner JOIN phpbb_profile_fields f
ON f.field_id = fl.field_id
inner JOIN phpbb_profile_fields_data d
ON f.field_id = fl.field_id
ORDER BY d.pf_lastname ASC
如果您希望显示3-4个表中的数据,但在此查询中,名称根据
phpbb\u profile\u fields\u lang
中出现的
field\u id
计数重复,则这是可选查询

您正在寻找的确切解决方案是,当您从中检索数据的所有表中都有相同的主键时

多谢各位

如果您希望显示3-4个表中的数据,但在此查询中,名称根据
phpbb\u profile\u fields\u lang
中出现的
field\u id
计数重复,则这是可选查询

您正在寻找的确切解决方案是,当您从中检索数据的所有表中都有相同的主键时


谢谢。

你能显示预期的结果吗?在d.pf\U education\U finished=f.field\U name
上,在
phpbb\U profile\U fields\U data
phpbb\U profile\U fields\U data\U data\n\code>之间没有任何相关字段,这与任何数据都不匹配。我在初始问题的底部添加了查询的预期结果。你能显示预期结果吗?在d.pf\u education\u finished=f.field\u name上,在
phpbb\u profile\u fields\u data
phpbb\u profile\u fields\u data
之间没有任何相关字段,这一个:
d.pf\u education\u finished=f.field\u name
,它与任何数据都不匹配。我在初始问题的底部添加了所需的查询结果。