从多个mysql表

时间:2015-07-03 01:10:30

标签: mysql

自从我使用MySQL以来已经有一段时间了。我不记得从多个sql表中获取不同类型的数据的最佳方法和确切技术是什么。

我正在构建一个shell页面来加载来自旧网站的数据,我只是尝试加载最近的三个博客帖子,其中标题在一个表中,用户名在另一个表中,发布的url在另一个表中。

我不希望只有来自同一用户的三个帖子。想想我在那里感到困惑。

基本上我希望能够像这样打印所有记录

 1, 17, 2, "First Post", "bob", "dole", "/first-post"
 2, 18, 2, "Second Post", "bob", "dole", "/second-post"
 3, 19, 1, "Third Post", "ron", "unix", "/third-post"

content.contentid = urls.assocId(for url) content.author = users.userId(用户名)

 create table content (
     id int,
     contentid int,
     author int,
     title varchar(16)
 );

 create table users (
     id int,
     userId int,
     firstName varchar(16),
     lastName varchar(16)
 );

create table urls (
     id int,
     assocId int,
     url varchar(16)
);

insert into content values  
    (1, 17, 2, "First Post"),
    (2, 18, 2, "Second Post"),
    (3, 19, 1, "Third Post");

insert into users values
    (1,1,"bob", "dole"),
    (2,2,"ron", "unix");

insert into urls values
    (1, 17, "/first-post"),
    (2, 18, "/second-post"),
    (3, 19, "/third-post");

http://sqlfiddle.com/#!9/e99cf

由于

1 个答案:

答案 0 :(得分:2)

在3个表之间只是一个简单的Double i=0; i = Convert.ToDouble(Convert.ToDouble(Datagridview.Rows[x].Cells[0].Value) + Convert.ToDouble(Datagridview.Rows[x+1].Cells[0].Value))

INNER JOIN

如果SELECT c.id, c.contentid, u.userId, u.firstName, u.lastName, urls.url FROM content AS c JOIN users AS u ON c.author = u.id JOIN urls ON c.contentid = urls.assocId ORDER BY c.id DESC LIMIT 3 表中有date字段,您可以将其用于content列,以便及时获取最新信息。我在我的示例中使用了ORDER BY字段。

DEMO