我有4个表,default_table,表-A,表-B,table_c,各有两列,
我要选择name并id从所有的表,然后排序呢,
我试着"SELECT Name,ID FROM default_table, table_a, table_b, table_c ORDER BY Name"
但这给我的错误,所以有人可以帮我解决这个问题,我需要的代码在sql或php中,如果可以,甚至是javascript
因为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)
你的问题是,你正在做的所有表数据的笛卡尔乘积所以它无法找出哪个 id或name你的意思.即使可以,你会得到的方式超出你的想象,由于倍增效应更行.您只需将所有行添加到输出中即可加入数据.
进一步解释这个区别,假设你有两个表:
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)
(行计数是各行计数的总和).
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |