JOINT MySQL查询

时间:2009-12-02 08:48:30

标签: mysql ambiguity

如果我有以下表格:

table_1: 1, 'Hello My Name is Hal', '2009:11:02 08:42'
table_1: 2, 'Hello My Name is Dave', '2009:11:02 08:30'
table_2: 1, 'Ima all #red due to twitter', '2009:11:02 09:42'

让我们假设所有表格列都具有相同的col_names

有什么方法可以进行查询以在不同行上的一个SELECT中返回结果

一些事情:

SELECT * FROM table_1, table_2 ORDER BY dateReg DESC

所以我的回归看起来像是:

1, 'Ima all #red due to twitter', '2009:11:02 09:42'
1, 'Hello My Name is Hal', '2009:11:02 08:42'
2, 'Hello My Name is Dave', '2009:11:02 08:30'

当我尝试运行上面的查询时,我得到了歧义错误(显然...... Duhh ..:D),但有没有办法可以在查询中执行此操作,而不是使用PHP在代码中进行排序。

任何想法?提前致谢

4 个答案:

答案 0 :(得分:3)

您可以使用UNION(或UNION ALL)来合并多个查询的结果:

SELECT * FROM table_1 UNION ALL SELECT * FROM table_2

(简单UNION将删除重复项,UNION ALL将返回所有结果。)

答案 1 :(得分:1)

您可以使用UNION查询

答案 2 :(得分:0)

使用表别名;)

类似的东西:

SELECT table1.id AS table1_id, table2.id AS table2_id, table3.id AS table3_id FROM table1, table2, table3

答案 3 :(得分:0)

使用初始示例作为基础,是否有一种方法可以使table2重载table1中具有相同id的行?

所以预期的结果是:

1, 'Ima all #red due to twitter', '2009:11:02 09:42'
2, 'Hello My Name is Dave', '2009:11:02 08:30'