我有两个简单的查询,但我需要一点帮助才能将它们连接到一个结果中
$query="SELECT * FROM USLUGE WHERE marka='1'";
第二个查询
$query2="SELECT * FROM USLUGE WHERE marka='2'";
我知道 $query 的结果将给出来自表 USLUGE 其中 marka=1 的所有内容,而结果 $query2 将给出来自表 USLUGE 其中 marka=2 的所有内容
但是我需要将这两个查询连接到一个查询中,当我执行 WHILE 循环时,为我提供两个查询的所有结果,而不是两个不同的 WHILE 循环,而只是一个包含两个查询结果的 WHILE 循环?
这可能吗,例如我给出了一个非常简单的查询来理解:)
最佳答案
只要表结构相同(更具体地说,如果两个查询返回相同数量的字段和相同的数据类型),就可以使用 SQL UNION
关键字,例如:
SELECT id, name FROM table1
UNION
SELECT id, name FROM table2
请注意,如果返回的列数或数据类型不匹配,则尝试执行查询将导致错误,例如,
SELECT id, name, comment FROM table1
UNION
SELECT id, name FROM table2
将无法工作并且会导致错误。
编辑:对于重写的问题,在 WHERE
子句中使用 OR
或 IN
效果更好解决办法:
SELECT * FROM USLUGE WHERE marka='1' OR marka='2'
或
SELECT * FROM USLUGE WHERE marka IN ('1', '2');
关于mysql - 连接两个 MYSQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17594334/