gpt4 book ai didi

mysql - 复杂的mysql查询,具体的join

转载 作者:行者123 更新时间:2023-11-29 08:28:15 25 4
gpt4 key购买 nike

我遇到了问题。我有 3 个表,选择时需要它们之间的内部联接。通常它会是这样的

select `wp_fs_reports`.*,`wp_fs_agents`.`name`,`wp_rg_form`.`title`  from `wp_fs_reports`
INNER JOIN `wp_rg_form` ON (`wp_fs_reports`.`form_id` = `wp_rg_form`.`id`)
INNER JOIN `wp_fs_agents` ON(`wp_fs_reports`.`agent_id` = `wp_fs_agents`.`id`)

问题是,wp_fs_reports.agent_idwp_fs_reports.form_id 可能具有 wp_rg_form.id 中不存在的值(“0”)和wp_fs_agents.id。因此它只会输出存在的值。问题是,是否可以输出提到的值 = 0 的那些行,将这些行中的 wp_fs_agents.namewp_rg_form.title 替换为“All”;我认为,替换它会是这样的

IF(`agent_id` = '0', 'All', `wp_fs_agents`.`name`) as `name

最佳答案

您可以使用左 JOIN 和 COALESCE 函数:

SELECT
`wp_fs_reports`.*,
COALESCE(`wp_fs_agents`.`name`,'All'),
`wp_rg_form`.`title`
FROM
`wp_fs_reports`
LEFT JOIN `wp_rg_form` ON (`wp_fs_reports`.`form_id` = `wp_rg_form`.`id`)
LEFT JOIN `wp_fs_agents` ON(`wp_fs_reports`.`agent_id` = `wp_fs_agents`.`id`)

关于mysql - 复杂的mysql查询,具体的join,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17371910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com