mysql联合查询,每个联合上都有单独的别名

标签 mysql union alias

正在创建一个搜索查询mysql,使用UNION连接多个表,现在我的问题是添加别名来标识每个表,因为如果我添加带别名的表名,它将显示错误COLUMN NOT FOUND 我试图在每个联合表上添加别名,但收到错误,我不知道该怎么做才能写入它,任何人都可以帮忙。

查询

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

最佳答案

我想这就是你想要的:

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

关于mysql联合查询,每个联合上都有单独的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50474531/

相关文章:

ruby-on-rails - Ruby on Rails "render json:"忽略 alias_attribute

php - 带有查询参数的 Laravel REST API

sql - 重新使用选择子查询/结果

linux - 当别名被变量调用时如何调用别名

c# - 在 linq 编译查询上使用 union

mysql - 选择用户,然后对该用户进行求和和计数

arrays - Perl:将数组别名为 array_ref

mysql 在给定其他值的约束条件下选择总和最大的记录

php - 不删除第二个表中的行

javascript - 使用 mysql 对discord.js 进行排名