簡體   English   中英

PHP-如何在這兩個查詢上全部使用UNION

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM