Php 如何使用内部联接从其他表中获取记录

Php 如何使用内部联接从其他表中获取记录,php,mysql,Php,Mysql,我有一个场景,一个表返回多个ID。现在,我想使用相同的查询从其他表中获取这些ID的记录。 我的问题是: SELECT `uID` AS `userID`, count(uID) AS `artistTotalViews` FROM `artist_view` GROUP BY `uID` ORDER BY `artistTotalViews` DESC 我的结果是: userID ArtistTotalViews 0 2

我有一个场景,一个表返回多个ID。现在,我想使用相同的查询从其他表中获取这些ID的记录。 我的问题是:

SELECT `uID` AS `userID`, 
       count(uID) AS `artistTotalViews` 
  FROM `artist_view` 
GROUP BY 
       `uID` 
ORDER BY 
       `artistTotalViews` DESC
我的结果是:

userID  ArtistTotalViews
    0   2
    1   2
    5   1
    4   1
    2   1
现在我希望在使用这些userID时,我可以从其他表中获取数据。使用此查询的另一个表中的整行,但与另一个表中的userID相对

我的表格结构是:

我要从中获取记录的文件:

-- ----------------------------
-- Table structure for web_user
-- ----------------------------
DROP TABLE IF EXISTS `web_user`;
CREATE TABLE `web_user` (
  `uID` int(8) NOT NULL auto_increment,
  `uFname` varchar(15) NOT NULL,
  `uLname` varchar(15) NOT NULL,
  `uEmail` varchar(100) NOT NULL,
  `userName` varchar(15) NOT NULL,
  `uPassword` varchar(255) NOT NULL,
  `uAddress` varchar(255) default NULL,
  `uCity` varchar(20) default NULL,
  `uState` varchar(5) default NULL,
  `uZipcode` int(8) default NULL,
  `uPhone` varchar(15) default NULL,
  `uImage` varchar(150) default NULL,
  `userType` tinyint(1) NOT NULL,
  `uGenre` int(8) default NULL,
  `website` varchar(255) default NULL,
  `biography` text,
  `uVerifyCode` varchar(255) NOT NULL,
  `featured` tinyint(1) NOT NULL default '0',
  `activate` tinyint(1) default '0',
  `uStatus` tinyint(1) NOT NULL,
  `uPaid` tinyint(1) NOT NULL,
  PRIMARY KEY  (`uID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
与当前查询完美配合的查询:

-- ----------------------------
-- Table structure for artist_view
-- ----------------------------
DROP TABLE IF EXISTS `artist_view`;
CREATE TABLE `artist_view` (
  `viewID` int(8) NOT NULL auto_increment,
  `uID` int(8) NOT NULL,
  `userIP` varchar(20) NOT NULL,
  PRIMARY KEY  (`viewID`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of artist_view
-- ----------------------------
INSERT INTO `artist_view` VALUES ('1', '5', '203.170.68.22');
INSERT INTO `artist_view` VALUES ('2', '4', '203.170.68.22');
INSERT INTO `artist_view` VALUES ('3', '2', '203.170.68.22');
INSERT INTO `artist_view` VALUES ('4', '1', '203.170.68.22');
INSERT INTO `artist_view` VALUES ('5', '0', '203.170.68.22');
INSERT INTO `artist_view` VALUES ('6', '1', '103.224.14.2');
INSERT INTO `artist_view` VALUES ('7', '0', '103.224.14.2');

谢谢

我没听清你的问题,只是我想这可以帮助你,我的朋友:

Select web_user.uID,web_user.uFname,web_user.uLname, artist_view.uID
From web_user inner join artist_view
ON web_user.uID = artist_view.uID.



SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;    //tabel1.userID = table2.userID
SELECT t1.*,t2.* FROM
(SELECT uID AS userID, count(uID) AS artistTotalViews 
FROM artist_view GROUP BY uID ORDER BY artistTotalViews DESC)t1
INNER JOIN TABLE2 t2 on t1.userID = t2.id;
试试这个:

SELECT T1.*,wu.*
FROM 
(SELECT `uID` AS `userID`,count(uID) AS `artistTotalViews` FROM `artist_view` GROUP BY `uID`) T1
 LEFT JOIN web_user wu  on T1.userID=wu.uID

你必须使用基于userid的join,你能帮我实现吗?我不知道如何使用join。我知道join可以帮上忙。我想在我现有的查询中实现这一点。你能这样做吗?这意味着我想扩展我已经完美运行的现有查询。是的,两个表的结构是什么让我在我的问题中发布亲爱的。我已经发布了我的表结构。你的答案是完美的,伙计。太好了:)你的回答帮我弄明白了。谢谢。:)