我遇到了MySQL查询的问题。
比方说,我们有两个表:
1 ...... 1
2 ...... 1
3 ...... 1
4 ...... 3
和
1 ...... 2
2 ...... 1
6 ...... 1
7 ...... 2
我真正需要得到的是一个由id过滤的结果,所以没有重复的id。如果它们是两个相同的id,则只考虑具有更高数量的id。所以在理想情况下我会得到这个结果:
1 ...... 2
2 ...... 1
3 ...... 1
4 ...... 3
6 ...... 1
7 ...... 2
到目前为止我尝试过的是一个UNION SELECT,它可以正常工作,但是当它遇到重复的ID时,它不会删除重复项,因为它只删除了重复的行。 GROUP BY也没有帮助。我仍然可以通过PHP中的数组对此进行排序,但如果可能的话,我希望在MySQL级别进行排序。
感谢大家的帮助,非常感谢!
答案 0 :(得分:16)
GROUP BY也没有帮助
真的?你有这样的尝试吗?
SELECT id, MAX(qty) AS qty
FROM
(
SELECT id, qty FROM table1
UNION ALL
SELECT id, qty FROM table2
) T1
GROUP BY id
答案 1 :(得分:14)
您可以使用UNION DISTINCT。也许它会运行......
SELECT * FROM t1 WHERE ...
UNION DISTINCT
SELECT * FROM t2 WHERE ...