我有 3 个表音频、视频、图像
他们都有添加日期和uid
我想从uid = 1的这些表中选择所有(选择*)并按添加日期对所有结果进行排序,非常困惑查询会是什么样子?
如果这些表包含相同的信息,您可以使用联合,例如:
select name, date_added
from(
select video_name as name,date_added, uid
from videos
union all
select audio_name as name,date_added, uid
from audios
union all
select image_name as name,date_added, uid
from images
) u
where uid = 1
order by date_added
如果 3 个表有 1 个相同的字段,如 groupID 或类似的字段,您可以使用左连接或内连接,具体取决于您想要的输出。
使用左连接:
select * from videos v left join audios a on v.groupID = a.groupID
left join images i on v.groupID = i.groupID
注意:如果您想使用其他类型的连接,只需将单词“left”更改为“inner”。它不必具有相同的字段名称“groupID”。但是有必要有一个共同的功能,或者它代表一些相互关联的东西。
链接:这里有一些链接可以帮助你 http://www.w3schools.com/sql/sql_join.asp http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql -joins.html
享受编码..:)