![]() |
|
Модераторы: skyboy |
![]()
|
|
| Finder128 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 15.3.2008 Репутация: нет Всего: нет |
Ситуация такая. У меня есть две таблицы в базе у которых в одном из полей значения должны совпадать. Таблицы имеют разное количество записей (6230 и 6242), хотя в идеале это количество должно быть одинаковым. Так вот, хотелось бы знать, какой запрос нужно написать, чтобы узнать, каких именно записей из большей таблицы нет в меньшей таблице.
Если я не ошибаюсь, это будет пересечение таблиц. Я сделал такой запрос:
Но выдаётся какой-то бредовый результат из дикого количества записей. В чём дело? Это сообщение отредактировал(а) Finder128 - 2.3.2009, 10:32 |
|||
|
||||
| ТоляМБА |
|
||||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 4 Всего: 252 |
или
В вопросе php нет ни на копейку, что он делает в этой ветке? |
||||
|
|||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
запрос с соединением нескольких таблиц происходит так(наличие индексов и работа оптимизатора может немного изменить алгоритм, я про общий случай): сначала реализовывается декартово произведение таблиц. Т.е. каждая запись из первой таблицы совмещается с каждой записью из второй. Получается <количество записей в первой таблице> ∙ <количество записей во второй таблице> записей. Потом к полученной куче применяются заданные в запросе фильтры и "неподходящие" записи выбрасываются.
В твоем случае, ты сначала получаешь декартово произведение таблиц из которого выбрасываются только те записи, в которых data.link = models.link_model(кстати говоря, не знал про оператор "!="; сколько помню себя, использовал "<>" для "не равно"). Что, очевидно, не то, что тебе надо. Тебе же нужен либо запрос:
или
И ещё: создание запросов не имеет никакого отношения к PHP. В следующий раз внимательнее выбирай раздел |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |