假设我在 MySql 中有两个表。
值(地址字段值)
字段(地址字段)
可能是某些人(值表中的user_id)没有填写所有地址字段。这意味着它们只有某些字段的值。
为了使用他们尚未使用的所有其他字段检索他们的所有值,我正在执行左右连接的联合:(使用联合,因为 MYSQL 没有完整的外部连接)。
SELECT field.*, value.*
FROM field
LEFT JOIN value ON field.id = value.field_id
WHERE
value.user_id='4'
union
SELECT field.*, value.*
FROM field
RIGHT OUTER JOIN value ON field.id = value.field_id
WHERE
value.user_id='4'
上面的工会没有做我想要达到的目标。User=4 仅填写了 50 个字段中的 4 个。查询结果仅返回 4。如果我在第二个中替换,请选择
value.user_id='4'
与
GROUP BY field.id
然后它返回 54 行(4 行已填写,外加所有 50 个可能的字段以及其他用户的值)。我也尝试对 value.* 使用虚拟值,但联合也没有正确合并记录,它再次返回 54 行。
有没有办法实现我所需要的?感谢您的任何想法……