繁体   English   中英

在不同的 mysql 表中搜索不同的列

[英]Searching for different columns in different mysql tables

我一个一个地执行这两个查询,但是我需要将这两个查询作为一个查询同时执行,并从 mysql 数据库中获取一次结果

我尝试了 UNION SELECT 但由于 select 来自不同表的不同列(型号,型号)它不起作用

有人知道 sql 查询结构来帮助我解决这个问题吗?

查询 1

$query = "SELECT post_id,SUBSTR(post_name, 1 ,30) as post_name,price,username,poster_folder_id FROM realestate 
    USE INDEX(idx_post_id,idx_name,idx_price,idx_username,idx_poster_folder_id)
    WHERE post_name LIKE ? OR description LIKE ? OR price LIKE ? ORDER BY post_id DESC LIMIT 10";

查询 2

$query = "SELECT post_id,SUBSTR(post_name, 1 ,30) as post_name,price,username,poster_folder_id FROM cars 
USE INDEX(idx_post_id,idx_name,idx_price,idx_username,idx_poster_folder_id)
WHERE post_name LIKE ? OR description LIKE ? OR model LIKE ? OR modelsnumber LIKE ? OR price LIKE ? ORDER BY post_id DESC LIMIT 10";

我试过了

$query = "SELECT post_id,SUBSTR(post_name, 1 ,30) as post_name,price,username,poster_folder_id FROM realestate 
WHERE post_name LIKE ? OR description LIKE ? OR price LIKE ? ORDER BY post_id DESC LIMIT 10
UNION
SELECT post_id,SUBSTR(post_name, 1 ,30) as post_name,price,username,poster_folder_id FROM cars 
WHERE post_name LIKE ? OR description LIKE ? OR model LIKE ? OR modelsnumber LIKE ? OR price LIKE ? ORDER BY post_id DESC LIMIT 10";

UNION 中带有 ORDER BY 和/或 LIMIT 的单独子查询必须用括号括起来

$query = "
   (SELECT post_id,SUBSTR(post_name, 1 ,30) as post_name,price,username,poster_folder_id 
    FROM realestate 
    WHERE post_name LIKE ? OR description LIKE ? OR price LIKE ? ORDER BY post_id DESC LIMIT 10
   )
UNION
   (SELECT post_id,SUBSTR(post_name, 1 ,30) as post_name,price,username,poster_folder_id 
    FROM cars 
    WHERE post_name LIKE ? OR description LIKE ? OR model LIKE ? OR modelsnumber LIKE ? OR price LIKE ? ORDER BY post_id DESC LIMIT 10
   )";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM