(MYSQL)如何一拼搜索多個資料表

2011-08-24 9:56 am
假若我有2個資料表: a表、b表
a表欄位為: a,b,t
b表欄位為: c,d,e,t

現在要將a表與b表混合搜索,排列by t,取出最新的10項數據
具體是怎麼樣的做法?
謝謝!
更新1:

補充一下~ a表和b表是完全的2間公司的資料 a表是A公司的出售數據,b表是B工廠的製造數據 基本上兩個資料表(包括欄位t)是無關連的 a.a和b.c是primary key 而t是用作記錄各數據的插入時間 現在想從a表和b表中混合搜索,抽出最新插入的10項數據 即搜索時,同時考慮a.t和b.t的時間先後次序,而取出最新的10項數據 有可能做到嗎? ps. (order by desc limit 10)

回答 (3)

2011-08-31 1:42 pm
✔ 最佳答案
既然兩表無關連就不能用 join table,只可用 union.

select a, b, null as c, null as d, null as e, t from a
union
select null as a, null as b, c, d, e, t from b
order by t desc limit 10

or
order by 6 desc limit 10
2011-08-24 9:20 pm
你講得好唔清楚喎~~

a表的t和b表的t是張兩個表連埋的KEY FIELD?

a表的t係primary key?

b表的t係primary key?

t係乜資料?


取出最新的10項數據?是order by t之後的頭十項數據?
如果是最新insert入去的數據,那是否有field係記錄insert數據的日期呢?

一般黎講,用sql statement去搵join埋的table就得~~

而一般唔會直接FROM a,b 咁寫~~會用join~~~

left join
right join
inner join
outer join

詳細用法~上網找一找就有~~

如果你要直接知道條sql statement係點~~唔該你寫清楚啲啦~~


2011-08-24 13:22:17 補充:
還有order by 有遞增或遞減,你都要寫清楚先得~~
2011-08-24 4:59 pm
select * from a, b where a.t = b.t order by t LIMIT 0 , 10;

select * from a, b <--- 括覽所有要用到既TABLE。
where a.t = b.t <---- 將a 的 t 跟 b 的 t 作為連結關聯既object。
order by t <---- 按t為排列次序。
LIMIT 0, 10 <---- 尋找由0開始到第10個的資料。


收錄日期: 2021-04-24 09:56:39
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20110824000051KK00127

檢視 Wayback Machine 備份