powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из двух таблиц
8 сообщений из 8, страница 1 из 1
Выборка из двух таблиц
    #38387924
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день !
Есть две таблицы : для простоты запрос и ответ !

TReq и TRes

в каждой есть два уникальных поля по которым строится выборка

TReq.reqId = TRes.resId and TReq.transactionID = TRes.transactionID

Сначала создается запись в таблице TReq , после получения данных от сервера - создается запись в таблице TReq.

а как сделать выборку которая содержала бы вы все записи из таблицы запросов TReq для которых нет записей ответов TRes ?
...
Рейтинг: 0 / 0
Выборка из двух таблиц
    #38387958
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://dev.mysql.com/doc/refman/5.5/en/join.html If there is no matching row for the right table in the ON or USING part in a LEFT JOIN, a row with all columns set to NULL is used for the right table. You can use this fact to find rows in a table that have no counterpart in another table:

SELECT left_tbl.*
FROM left_tbl LEFT JOIN right_tbl ON left_tbl.id = right_tbl.id
WHERE right_tbl.id IS NULL;

This example finds all rows in left_tbl with an id value that is not present in right_tbl (that is, all rows in left_tbl with no corresponding row in right_tbl).
...
Рейтинг: 0 / 0
Выборка из двух таблиц
    #38387980
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
спасибо !

Но я все равно не понимаю : вот пример
TReq
reqIdtransactionID 110002100131002

TRes
resIdtransactionID 1100031002

Видим что запись во второй таблице вообще не создалась ... даже с null -ее на второй запрос просто нет.

нужно выбрать именно вторую строку

и как то ее вывести в выборке указав все остальные поля из TRes как null
...
Рейтинг: 0 / 0
Выборка из двух таблиц
    #38387994
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
второй вариант выбрать все из первой даже если их нет во второй (заменить все поля null).

такой запрос выбирает только те которые есть в обоих :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select 
        `req`.`reqId` AS `ID`,
        `req`.`Info` AS `Info`,
        `req`.`transactionID` AS `transactionID`
        `res`.`creationDate` AS `creationDate`,
        `res`.`text` AS `text`,
        `res`.`requestSign` AS `requestSign`,

    from
        `TReq` `req` join `TRes` `res` 
          ON ((`req`.`reqId` = `res`.`resId`)  and (`req`.`transactionID` = `res`.`transactionID`))



Т.е нужен запрос чтобы вывести все поля для которых нет TRes!
Указав им creationDate = null text= null requestSign=null


Плюс запрос который выведет и первое и второе сразу.
...
Рейтинг: 0 / 0
Выборка из двух таблиц
    #38388011
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сравните свой запрос и запрос из мануала ПО БУКВАМ. Особенно секцию FROM...
...
Рейтинг: 0 / 0
Выборка из двух таблиц
    #38388152
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Забыл про left join :)
...
Рейтинг: 0 / 0
Выборка из двух таблиц
    #38388235
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот именно. Просто Join - это Inner. И никаких right_tbl.id IS NULL там не может быть в принципе.
...
Рейтинг: 0 / 0
Выборка из двух таблиц
    #38388898
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Спасибо! Просто раньше все время держал для себя такой файлик - а потом куда то его удалил.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из двух таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]