0

对于一个 sql 查询,我需要一点帮助;

这是我的基本用户数据库表

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `email` varchar(100) NOT NULL,
  `pass` varchar(255) NOT NULL,
  `fname` varchar(50) NOT NULL,
  `lname` varchar(40) NOT NULL, 
  `network` varchar(10) NOT NULL, 
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ;

这是我的基本主题数据库表

CREATE TABLE IF NOT EXISTS `topics` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userid` varchar(100) NOT NULL,
  `title` varchar(255) NOT NULL,
  `body` text,
  `tags` varchar(256) NOT NULL,  
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

我想做的是;即列出加入“哈佛”网络的用户的所有主题

4

3 回答 3

1

你只需要一个简单的JOIN. 加入用户 ID 上的表(那些在 中的"harvard")。

SELECT title,body
FROM topics, users
WHERE userid = users.id
AND network = 'harvard'

或者使用JOIN关键字:

SELECT title,body
FROM topics
JOIN users ON userid = users.id
WHERE network = 'harvard'
于 2012-07-11T16:32:35.157 回答
1

我认为这应该可以解决问题:

SELECT 
    title 
FROM 
    topics t
INNER JOIN
    users u ON t.userid=u.id 
WHERE 
    network='Harvard'
于 2012-07-11T16:33:33.043 回答
1
SELECT t.title
FROM users u
INNER JOIN topics t ON u.id = t.userid
WHERE u.network = 'harvard'
GROUP BY u.id
于 2012-07-11T16:33:38.060 回答