|
|
|
Выборка из двух таблиц
|
|||
|---|---|---|---|
|
#18+
Добрый день ! Есть две таблицы : для простоты запрос и ответ ! TReq и TRes в каждой есть два уникальных поля по которым строится выборка TReq.reqId = TRes.resId and TReq.transactionID = TRes.transactionID Сначала создается запись в таблице TReq , после получения данных от сервера - создается запись в таблице TReq. а как сделать выборку которая содержала бы вы все записи из таблицы запросов TReq для которых нет записей ответов TRes ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 14:13:27 |
|
||
|
Выборка из двух таблиц
|
|||
|---|---|---|---|
|
#18+
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). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 14:32:47 |
|
||
|
Выборка из двух таблиц
|
|||
|---|---|---|---|
|
#18+
miksoft, спасибо ! Но я все равно не понимаю : вот пример TReq reqIdtransactionID 110002100131002 TRes resIdtransactionID 1100031002 Видим что запись во второй таблице вообще не создалась ... даже с null -ее на второй запрос просто нет. нужно выбрать именно вторую строку и как то ее вывести в выборке указав все остальные поля из TRes как null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 14:41:21 |
|
||
|
Выборка из двух таблиц
|
|||
|---|---|---|---|
|
#18+
второй вариант выбрать все из первой даже если их нет во второй (заменить все поля null). такой запрос выбирает только те которые есть в обоих : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Т.е нужен запрос чтобы вывести все поля для которых нет TRes! Указав им creationDate = null text= null requestSign=null Плюс запрос который выведет и первое и второе сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 14:50:57 |
|
||
|
Выборка из двух таблиц
|
|||
|---|---|---|---|
|
#18+
Сравните свой запрос и запрос из мануала ПО БУКВАМ. Особенно секцию FROM... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 14:56:49 |
|
||
|
Выборка из двух таблиц
|
|||
|---|---|---|---|
|
#18+
Akina, Забыл про left join :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 16:26:09 |
|
||
|
Выборка из двух таблиц
|
|||
|---|---|---|---|
|
#18+
Вот именно. Просто Join - это Inner. И никаких right_tbl.id IS NULL там не может быть в принципе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 17:23:29 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38388152&tid=1836107]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
18ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 310ms |

| 0 / 0 |
