这是我的疑问:
SELECT * FROM main_menu AS m WHERE EXISTS(select * from menu where menu.main_menu_id = m.main_menu_id AND menu.menu IS NOT NULL)
以上查询仅显示main_menu表中的行,如果菜单表中各自的行不为NULL,这是正确的。
但我想做更多的事情。如果菜单表(子查询)的值发现为NULL,则应更改main_menu值(外部查询),例如使用IFNULL
但外部查询。我该怎么办?
答案 0 :(得分:2)
然后你应该使用LEFT JOIN
而不是EXISTS()
声明:
SELECT m.*,COALESCE(m2.<Column>,OtherValue),....
FROM main_menu m
LEFT JOIN menu m2
ON(m2.main_menu_id = m.maid_menu_id AND m2.menu is not null)
即使没有这样的记录,这也会加入两个表,并且所有菜单列都会有NULL
个值。
你没有定义'应该改变',所以这是我能想到的最好的。