如何交叉取乙個表的資料

2021-08-02 06:50:07 字數 829 閱讀 2043

有這樣乙個需求,先說下表結構,這個表裡有帖子資訊和問答資訊,1對1或者1對多。type 1是帖子資訊型別 2 是問答型別

create table `wenda` (

`id` int(11) not null auto_increment,

`title` varchar(50) not null,

`type` int(4) default null,

`tieziid` int(11) default null,

primary key (`id`)

) engine=innodb auto_increment=15 default charset=utf8;

如何按照乙個帖子,乙個最新的問答,取出列表的資料

select tiezi.*,wenda.*

from wenda as tiezi 

left join 

(select a.id,a.title,a.tieziid 

from wenda a 

where type = 2 and 1 > (select count(*) from wenda where type = 2 and tieziid=a.tieziid and id>a.id) 

order by a.tieziid,a.id desc) 

as wenda

on tiezi.id

= wenda.tieziid

where tiezi.type = 1

當然不推薦這樣設計表,只是針對這個表查詢做一下說明罷了。

另外有更好的sql,歡迎討論。

歡迎加入我的qq群:425783133

乙個交叉表

乙個交叉表.用字段明做為值 原表資料為 欄位1 欄位2 欄位3 a1 b1 c1 a2 b2 c2 變換後 col1 col2 col3 欄位1 a1 a2 欄位2 b1 b2 欄位3 c1 c2 createtabletablename 欄位1varchar 100 欄位2varchar 100 ...

SQL如何將乙個表的資料插入另乙個表

sql實現將乙個表的資料插入到另外乙個表的 第一種情況的 1 如果2張表的字段一致,並且希望插入全部資料,可以用這種方法 insert into 目標表 select from 表 2 比如要將 articles 表插入到 newarticles 表中,則是 insert into newartic...

取乙個單向鍊錶的某個節點

思路先遍歷整個鍊錶得到長度,然後根據總長度和k得到節點到頭結點的距離 public class listnode public class solution temp length k if head null k length return null while temp 0 return cur...