Voyager2K
Новичок
Проблема со сложным запросом.
Раньше все сложные задачи решал с помощью простых запросов SQL, все остальное посредством пхп. Теперь появилась необходимость одним запросом реализовать одну весЧь.
таблица t1
id text type
1 text1 1
2 text2 1
3 text3 1
4 bigtext1 2
5 bigtext11 2
6 bigtext 3
таблица t2
id1 id2
1 5
1 4
1 6
Дамп этих же таблиц:
[SQL]
CREATE TABLE `t1` (
`id` int(11) NOT NULL auto_increment,
`text` text NOT NULL,
`type` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7 ;
INSERT INTO `t1` VALUES (1, 'text1', 1);
INSERT INTO `t1` VALUES (2, 'text2', 1);
INSERT INTO `t1` VALUES (3, 'text3', 1);
INSERT INTO `t1` VALUES (4, 'big text1', 2);
INSERT INTO `t1` VALUES (5, 'big text11', 2);
INSERT INTO `t1` VALUES (6, 'big text', 3);
CREATE TABLE `t2` (
`id1` int(11) NOT NULL default '0',
`id2` int(11) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
INSERT INTO `t2` VALUES (1, 5);
INSERT INTO `t2` VALUES (1, 4);
INSERT INTO `t2` VALUES (1, 6);
[/SQL]
Поясню:
t1.id => t2.id1
t2.id2 => t1.id
То есть как одним запросом оргнизовать такое:
1. просмотреть t1 на наличие type = 1, если верно получить значение t1.id, то п.2
2. Искать все строки где t2.id1 = t1.id, и получить из этого значение t2.id2
3. Посмотреть(и выдать результат) сколько в t1 записей удовлетворяющих условию t1.id = t2.id2 AND type = 2
Раньше все сложные задачи решал с помощью простых запросов SQL, все остальное посредством пхп. Теперь появилась необходимость одним запросом реализовать одну весЧь.
таблица t1
id text type
1 text1 1
2 text2 1
3 text3 1
4 bigtext1 2
5 bigtext11 2
6 bigtext 3
таблица t2
id1 id2
1 5
1 4
1 6
Дамп этих же таблиц:
[SQL]
CREATE TABLE `t1` (
`id` int(11) NOT NULL auto_increment,
`text` text NOT NULL,
`type` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7 ;
INSERT INTO `t1` VALUES (1, 'text1', 1);
INSERT INTO `t1` VALUES (2, 'text2', 1);
INSERT INTO `t1` VALUES (3, 'text3', 1);
INSERT INTO `t1` VALUES (4, 'big text1', 2);
INSERT INTO `t1` VALUES (5, 'big text11', 2);
INSERT INTO `t1` VALUES (6, 'big text', 3);
CREATE TABLE `t2` (
`id1` int(11) NOT NULL default '0',
`id2` int(11) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
INSERT INTO `t2` VALUES (1, 5);
INSERT INTO `t2` VALUES (1, 4);
INSERT INTO `t2` VALUES (1, 6);
[/SQL]
Поясню:
t1.id => t2.id1
t2.id2 => t1.id
То есть как одним запросом оргнизовать такое:
1. просмотреть t1 на наличие type = 1, если верно получить значение t1.id, то п.2
2. Искать все строки где t2.id1 = t1.id, и получить из этого значение t2.id2
3. Посмотреть(и выдать результат) сколько в t1 записей удовлетворяющих условию t1.id = t2.id2 AND type = 2