[英]PHP - How can i use UNION all on those two queries
我想將這些查詢合並為一個,使用全部合並,我該怎么做?
$query = ("SELECT menu_id, menu_friendlyName
FROM menu
WHERE back = 1 AND active = 1")
$query = ("SELECT menu_id, submenu_id, submenu_name, url
FROM submenu
WHERE active = 1");
例如這種方式:
$query =
"select * from (
SELECT
menu_id,
menu_friendlyName,
NULL as submenu_id,
NULL as url,
FROM menu
WHERE back = 1 AND active = 1
union all
SELECT
menu_id,
NULL as menu_friendlyName,
submenu_id,
submenu_name,
url,
FROM submenu
WHERE active = 1) x"
);
否則,就像其他人提到的那樣,工會並不是一個好主意。
如果要選擇帶有相應子菜單項的菜單項,則必須改用JOIN 。 我將為此使用LEFT JOIN :
SELECT m.menu_id, m.menu_friendlyName, s.submenu_id, s.submenu_name, s.url
FROM menu AS m
LEFT JOIN submenu AS s
ON s.menu_id = m.menu_id
WHERE
m.back = 1
AND m.active = 1
AND s.active = 1
如果使用JOIN ,則查詢返回菜單項,該菜單項至少具有一個子菜單項。 如果您使用LEFT JOIN ,它還會返回菜單條目,而不包含任何子菜單條目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.