“我的网络”功能与sql子查询

时间:2012-07-11 16:27:46

标签: php mysql sql

我需要一个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 ;

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

3 个答案:

答案 0 :(得分:1)

你只需要一个简单的JOIN。加入userID("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'

答案 1 :(得分:1)

这应该可以解决问题,我想:

SELECT 
    title 
FROM 
    topics t
INNER JOIN
    users u ON t.userid=u.id 
WHERE 
    network='Harvard'

答案 2 :(得分:1)

SELECT t.title
FROM users u
INNER JOIN topics t ON u.id = t.userid
WHERE u.network = 'harvard'
GROUP BY u.id