php - 在一个查询mysql中加入多个查询

标签 php mysql sql database join

<分区>

我有多个这样的查询:

select id,name from phonebook WHERE (name='') AND (Tag ='') AND Country= ''; 
select id,name from phonebook WHERE (name='') AND Country= '';
select id,name from phonebook WHERE (tag='') AND Country= '';

我想将它们加入一个查询(按此顺序)。

EID

我想在每个查询(不是所有查询)中放置顺序:

select id,name from phonebook WHERE (name='') AND (Tag ='') AND Country= '' order by points; 

所以在每个查询中谁获得更高的分数将是第一个

最佳答案

如果您想加入多个查询的结果,或者如果您只想实现您的解决方案,请继续上述答案(尽管需要注意顺序),您可能正在寻找联合:

select id,name from phonebook WHERE (name='') AND (Tag ='') AND Country= '' UNION
select id,name from phonebook WHERE (name='') AND Country= '' UNION
select id,name from phonebook WHERE (tag='') AND Country= '';

MatBailie 在评论中所建议,如果您希望重复导致每个查询保留而不是使用 UNION ALL而不是 UNION .

MatBailie:UNION将搜索结果并删除重复项。 UNION ALL甚至不会尝试。在这种情况下,我们事先知道三个查询没有相同的结果,所以 UNION ALL将消除一些多余的 CPU 工作。另外,UNION可能会导致顺序更改(对重复数据删除进行操作),其中 UNION ALL不会(在我习惯的 RDBMS 上)。

这里有两种口味供您点餐

SELECT * FROM 
(
  select id,name from phonebook WHERE (name='') AND (Tag ='') AND Country= '' order by Points
) DUMMY_ALIAS1

UNION ALL

SELECT * FROM 
(
  select id,name from phonebook WHERE (name='') AND Country= '' order by Points
) DUMMY_ALIAS2

UNION ALL

SELECT * FROM
( 
  select id,name from phonebook WHERE (tag='') AND Country= '' order by Points
) DUMMY_ALIAS3

select id,name, points from phonebook WHERE (name='') AND (Tag ='') AND Country= '' UNION
select id,name, points from phonebook WHERE (name='') AND Country= '' UNION
select id,name, points from phonebook WHERE (tag='') AND Country= '' order by Points;

关于php - 在一个查询mysql中加入多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23130745/

相关文章:

javascript - 将 "[]"字符串传输到 php 驱动的后端

mysql - 如何让Mysql注释显示在慢日志或进程列表中?

sql - 如何最好地存储和汇总每天、每周、每月的访问量以便快速检索?

php - 查询树的项目数

mysql - 如果连接表中不存在则显示 0 的 SQL 命令

php - Cakephp 3 无法同时保存多个翻译

php - 在多个 mysql 表之间保持更新的 mysql 数据

php - 如何从标准 url 获取正确的 soundcloud url 以进行嵌入?

java - 如何保存微调器数据和选定的单选按钮保存到 mysql 数据库?

mysql - 间歇性无法连接到 AWS RDS 上的 mysql(错误 2003)