从两个表中选择而不是订购它

nyo*_*and 2 php mysql

我有4个表,default_table,表-A,表-B,table_c,各有两列,
我要选择nameid从所有的表,然后排序呢,
我试着"SELECT Name,ID FROM default_table, table_a, table_b, table_c ORDER BY Name"
但这给我的错误,所以有人可以帮我解决这个问题,我需要的代码在sql或php中,如果可以,甚至是javascript

pax*_*blo 5

因为order by在工会之后应用,你可以这样做:

select id, name from default_table
    union all select id, name from table_a
    union all select id, name from table_b
    union all select id, name from table_c
order by name
Run Code Online (Sandbox Code Playgroud)

你的问题是,你正在做的所有表数据的笛卡尔乘积所以它无法找出哪个 idname你的意思.即使可以,你会得到的方式超出你的想象,由于倍增效应更行.您只需所有行添加到输出中即可加入数据.


进一步解释这个区别,假设你有两个表:

table1          table2
======          ======
id     name     id     name
--     ----     --     ------
 1     pax       1     jill
 2     bob       2     debbie
 3     joe
Run Code Online (Sandbox Code Playgroud)

查询:

select a.id, a.name, b.id, b.name from table1 a, table2 b
Run Code Online (Sandbox Code Playgroud)

(笛卡儿产品)会给你:

1 pax 1 jill
1 pax 2 debbie
2 bob 1 jill
2 bob 2 debbie
3 joe 1 jill
3 joe 2 debbie
Run Code Online (Sandbox Code Playgroud)

(行数是各行数的乘积)而:

select id, name from table1
union all
select id, name from table2
Run Code Online (Sandbox Code Playgroud)

(工会)会给你:

1 pax
2 bob
3 joe
1 jill
2 debbie
Run Code Online (Sandbox Code Playgroud)

(行计数是各行计数的总和).