запрос объединения mysql с индивидуальным псевдонимом для каждого объединения - PullRequest
0 голосов
/ 22 мая 2018

Создаю поисковый запрос mysql, используя UNION для объединения нескольких таблиц, теперь моя проблема заключается в добавлении псевдонима для идентификации каждой таблицы, потому что, если я добавлю имя таблицы с псевдонимом, будет отображаться ошибка COLUMN NOT FOUND Пытаюсь добавитьпсевдоним на каждой объединенной таблице, но я получаю ошибки, которые я не знаю, что сделать, чтобы получить его, может кто-нибудь помочь.

QUERY

SELECT * FROM (
    (
        SELECT 'food' as type,
        food_id AS item_id,
        food_name AS item_name,
        primary_image AS item_img,
        food_price AS item_price,
        food_currency AS item_currency,
        food_discount AS item_discount,
        chef_status AS ison
        FROM foods
    ) AS f

    UNION

    (
        SELECT 'chef' as type,
        chef_pagename AS item_id,
        business_name AS item_name,
        chef_photo AS item_img,
        NULL AS item_price,
        NULL AS item_currency,
        NULL AS item_discount,
        chef_status AS ison
        FROM our_chefs
    ) AS c
) AS fsc

WHERE f.food_name LIKE '%chicken%'
OR f.item_price LIKE '%100%'
OR c.business_name LIKE '%chicken%'
AND fsc.ison = 1

Спасибо, ребята за вклад, я решил проблему сейчас, выполнив

WHERE item_name LIKE '%chicken%'
OR item_price LIKE '%100%'
AND fsc.ison = 1

1 Ответ

0 голосов
/ 22 мая 2018

Я думаю, это то, что вы хотите:

SELECT * FROM (

  (
    SELECT 'food' as type,
    food_id AS item_id,
    food_name AS item_name,
    primary_image AS item_img,
    food_price AS item_price,
    food_currency AS item_currency,
    food_discount AS item_discount,
    chef_status AS ison
    FROM foods
    WHERE food_name LIKE '%chicken%'
    OR item_price LIKE '%100%'
  )  

  UNION

  (
    SELECT 'chef' as type,
    chef_pagename AS item_id,
    business_name AS item_name,
    chef_photo AS item_img,
    NULL AS item_price,
    NULL AS item_currency,
    NULL AS item_discount,
    chef_status AS ison
    FROM our_chefs
    WHERE business_name LIKE '%chicken%'
  )  
) AS a

WHERE  a.ison = 1
...