我想查出t_strategy表中的所有记录,其中t_strategy表中有2个字段channelid和appid 分别来自另2个表,当channelid为0时,则表示所有的channelid,当appid为0时,表示所有的appid,不需要考虑最后数据的重复,最后显示的时候也就是要把为0的替换为相应的id。附上sql脚本!
/*
Navicat MySQL Data TransferSource Server         : localhost
Source Server Version : 50051
Source Host           : localhost:3306
Source Database       : testTarget Server Type    : MYSQL
Target Server Version : 50051
File Encoding         : 65001Date: 2010-08-30 21:34:53
*/SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `t_app`
-- ----------------------------
DROP TABLE IF EXISTS `t_app`;
CREATE TABLE `t_app` (
  `appid` int(11) NOT NULL default '0',
  `appname` varchar(20) character set utf8 default NULL,
  PRIMARY KEY  (`appid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;-- ----------------------------
-- Records of t_app
-- ----------------------------
INSERT INTO t_app VALUES ('1', '应用1');
INSERT INTO t_app VALUES ('2', '应用2');-- ----------------------------
-- Table structure for `t_channel`
-- ----------------------------
DROP TABLE IF EXISTS `t_channel`;
CREATE TABLE `t_channel` (
  `channelid` int(10) NOT NULL auto_increment,
  `channelname` varchar(10) character set utf8 default NULL,
  PRIMARY KEY  (`channelid`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;-- ----------------------------
-- Records of t_channel
-- ----------------------------
INSERT INTO t_channel VALUES ('1', 'a渠道商');
INSERT INTO t_channel VALUES ('2', 'b渠道商');
INSERT INTO t_channel VALUES ('3', 'c渠道商');-- ----------------------------
-- Table structure for `t_charge`
-- ----------------------------
DROP TABLE IF EXISTS `t_charge`;
CREATE TABLE `t_charge` (
  `cid` int(10) NOT NULL auto_increment,
  `chargename` varchar(10) character set utf8 default NULL,
  PRIMARY KEY  (`cid`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;-- ----------------------------
-- Records of t_charge
-- ----------------------------
INSERT INTO t_charge VALUES ('1', '计费策略1');
INSERT INTO t_charge VALUES ('2', '计费策略2');-- ----------------------------
-- Table structure for `t_strategy`
-- ----------------------------
DROP TABLE IF EXISTS `t_strategy`;
CREATE TABLE `t_strategy` (
  `rid` int(10) NOT NULL auto_increment,
  `cid` int(10) NOT NULL,
  `channelid` int(10) NOT NULL,
  `appid` int(10) NOT NULL,
  `modifytime` date NOT NULL,
  PRIMARY KEY  (`rid`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;-- ----------------------------
-- Records of t_strategy
-- ----------------------------
INSERT INTO t_strategy VALUES ('1', '1', '1', '1', '2010-08-30');
INSERT INTO t_strategy VALUES ('2', '1', '2', '1', '2010-08-29');
INSERT INTO t_strategy VALUES ('3', '2', '2', '2', '2010-08-30');
INSERT INTO t_strategy VALUES ('4', '2', '2', '2', '2010-08-29');
INSERT INTO t_strategy VALUES ('5', '1', '2', '2', '2010-08-29');
INSERT INTO t_strategy VALUES ('6', '2', '2', '1', '2010-08-30');
INSERT INTO t_strategy VALUES ('7', '2', '0', '0', '2010-08-30');
INSERT INTO t_strategy VALUES ('8', '1', '1', '0', '2010-08-29');
INSERT INTO t_strategy VALUES ('9', '1', '0', '2', '2010-08-29');
INSERT INTO t_strategy VALUES ('10', '1', '0', '1', '2010-08-29');
INSERT INTO t_strategy VALUES ('11', '1', '2', '0', '2010-08-31');