我需要一个查询,根据3个表从1个表中检索数据:
Table1
UID _ GID
1%-0
2/2-1
3-1
4/2
Table2
1/2
2/2-3
3/4
4/5
Table3
盖德·CID
1/2
2-2-2
3-3-3
4-1
现在我需要从table3检索数据,其中table1.GID=1、table2.UID=table1.UID和table3.CID=table2.CID
发布于 2013-08-23 14:00:16
你可以用这个:
SELECT Table3.* FROM Table1 LEFT JOIN (Table2, Table3)
ON (table1.GID=1 and table2.UID=table1.UID and table3.CID=table2.CID)发布于 2013-08-23 14:04:21
除非我做了一个错误
SELECT
t3.*
FROM
t3
LEFT JOIN
t2 ON t3.cid = t2.cid
LEFT JOIN
t1 ON t2.uid = t1.uid
WHERE
t1.gid = 1;附表:
CREATE TABLE IF NOT EXISTS `t1` (
`uid` int(11) NOT NULL AUTO_INCREMENT,
`gid` int(11) NOT NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `t1` (`uid`, `gid`) VALUES
(1, 0),
(2, 1),
(3, 1),
(4, 2);
CREATE TABLE IF NOT EXISTS `t2` (
`cid` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
PRIMARY KEY (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `t2` (`cid`, `uid`) VALUES
(1, 2),
(2, 3),
(3, 4),
(4, 5);
CREATE TABLE IF NOT EXISTS `t3` (
`lid` int(11) NOT NULL AUTO_INCREMENT,
`cid` int(11) NOT NULL,
PRIMARY KEY (`lid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `t3` (`lid`, `cid`) VALUES
(1, 2),
(2, 2),
(3, 3),
(4, 1);发布于 2013-08-23 13:55:27
您可以使用此查询。
SELECT table3.*
FROM table1
JOIN table2
JOIN table3
WHERE table1.GID=1
and table2.UID=table1.UID
and table3.CID=table2.CIDhttps://stackoverflow.com/questions/18404588
复制相似问题