这是我的查询:
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
,但用于外部查询。请问我该怎么做?
然后应该使用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
值。
你没有定义"应该改变",所以这是我能想到的最好的。