Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск исключений
 
 автор: Jura   (26.10.2005 в 18:52)   письмо автору
 
 

Люди, всех приветствую! Помогите плиз, решить простенький вопрос, но увы не для меня...

Условия: MYSQL 4.1.7, есть две таблицы (vopros и otvet), которые между собой связаны полем numberid (поле использует уникальные значения, повторения не допустимы)
Задача: Подскажите как сделать выборку тех значений из таблицы vopros.numberid, которых нету в таблице otvet.numberid


пробовал 2 запроса:
1.

select vopros.numberid, otvet.pid,IF(vopros.numberid=otvet.numberid,"y","n") FROM vopros, otvet group by vopros.numberid order by vopros.numberid desc;


2.

select vopros.numberid as vopros, otvet.numberid as otvet, count(*),IF(vopros.numberid=otvet.numberid,"y","n") FROM vopros, otvet where IF(vopros.numberid=otvet.numberid,"y","n")='n' group by vopros.numberid order by vopros.numberid desc ;



Хелп, что я делаю не так????

   
 
 автор: cheops   (26.10.2005 в 20:49)   письмо автору
 
   для: Jura   (26.10.2005 в 18:52)
 

Нет здесь пожалуй только через вложенные запросы можно получить ответ
SELECT numberid FROM vopros WHERE numberid NOT IN (SELECT numberid FROM otvet)

   
 
 автор: Jura   (27.10.2005 в 10:03)   письмо автору
 
   для: cheops   (26.10.2005 в 20:49)
 

Спасибо КОЛЛЕГА, ты меня спас..... Работает..... Премного благодарен.

   
 
 автор: Jura   (03.12.2005 в 12:47)   письмо автору
 
   для: cheops   (26.10.2005 в 20:49)
 

Люди, хелп! На mysql 4.0.25 код который ниже не работает, подскажите плиз... как заставить... работать...
Желательно в один запрос.



SELECT numberid FROM vopros WHERE numberid NOT IN (SELECT numberid FROM otvet) 


Код исполняется через php

$query_lishnee="SELECT numberid FROM vopros WHERE numberid NOT IN (SELECT numberid FROM otvet) ";
$result5=mysql_query($query_lishnee);
$lishnee = mysql_result( $result5, 0, 0 ) ; // лишнее


Выдает, что не поддерживается данный запрос.

Где ошибка? плиз...

   
 
 автор: cheops   (03.12.2005 в 12:48)   письмо автору
 
   для: Jura   (03.12.2005 в 12:47)
 

Вложенные запросы появились только начиная с 4.0.1... NOT IN практически невозможно в один запрос конвертировать в отличии от IN...

   
 
 автор: slamor   (04.12.2005 в 22:17)   письмо автору
 
   для: Jura   (03.12.2005 в 12:47)
 

Посмотрите на это:


-- создаём и заполняем две таблицы для теста:
DROP TABLE IF EXISTS vopros;
CREATE TABLE vopros (
  numberid int(11) NOT NULL default '0'
) TYPE=MyISAM;

INSERT INTO vopros VALUES (1),(2),(3),(4),(5),(6),(7);


DROP TABLE IF EXISTS otvet;
CREATE TABLE otvet (
  numberid int(11) NOT NULL default '0'
) TYPE=MyISAM;

INSERT INTO otvet VALUES (1),(2),(4),(6);


-- а это запрос который должен помочь:
SELECT vopros.numberid
FROM vopros
LEFT JOIN otvet ON vopros.numberid = otvet.numberid
WHERE otvet.numberid IS NULL



можно запустить этот код прямо в phpmyadmin
на выходе будет выборка значений из первой таблицы, которых нет во второй.

В данном случае это 3, 5, 7

Удачи.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования