正在创建一个搜索查询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/