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

Форум MySQL

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

 

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

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

тема: Выборка с проверкой на существование записей в другой таблице
 
 автор: Drago   (04.12.2007 в 20:09)   письмо автору
 
 

Есть две таблицы

U
id | name

C
id | text | u_id

Мне нужно выбрать из таблицы U все записи, id которых отсутствуют в столбце u_id таблицы C.
Как это можно реализовать?

   
 
 автор: devil943   (04.12.2007 в 20:13)   письмо автору
 
   для: Drago   (04.12.2007 в 20:09)
 

Создай цикл for, где последовательно открывается строка таблицы U и сверяетя с таблицей C, если ты работаешь в php

   
 
 автор: Drago   (04.12.2007 в 22:00)   письмо автору
 
   для: devil943   (04.12.2007 в 20:13)
 

Ну это понятно, что можно через цикл это все проверить. А если у меня там 100 000 строк, мне делать 100 000 запросов?

Меня интересует, как это реализовать средствами MYSQL.

Может, как-нибудь через COUNT()? Но я не представляю, как это записать синтаксически.

   
 
 автор: Faraon   (05.12.2007 в 15:11)   письмо автору
 
   для: Drago   (04.12.2007 в 22:00)
 


$q = "select U.id as id, U.name as name
           from U
           left join C on U.id = C.u_id
          where C.u_id is not null
 order by U.id";

   
 
 автор: Thrasher   (05.12.2007 в 15:23)   письмо автору
 
   для: Faraon   (05.12.2007 в 15:11)
 

Ваш запрос ничем не отличается от такого:

$q = "select * from U order by id";

   
 
 автор: Faraon   (05.12.2007 в 16:11)   письмо автору
 
   для: Thrasher   (05.12.2007 в 15:23)
 

>id которых отсутствуют в столбце u_id таблицы C.

А, блин которые отсутствуют, Пардон!

   
 
 автор: Thrasher   (05.12.2007 в 10:11)   письмо автору
 
   для: Drago   (04.12.2007 в 20:09)
 


$q = "select U.id id, U.name name
           from U
           left join C on U.id = C.u_id
           where C.id is null
           order by U.id";

   
 
 автор: Drago   (05.12.2007 в 14:47)   письмо автору
 
   для: Thrasher   (05.12.2007 в 10:11)
 

Кажется, это именно то, что нужно. Спасибо!

   
Rambler's Top100
вверх

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