|
|
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Я извиняю ели повторяюсь по теме, но не нашел ничего подходящего, тяжело в поиске сформулировать что надо. есть две таблицы table1 (id) table2(id, id_value) 1 1 1 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 12:30:42 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
table1 (id) 1 2 3 4 5 table2(id, id_value) 1 10 2 11 1 12 2 13 5 14 1 15 2 10 как получить вот такой результат: 1 10 1 12 2 10 т.е. мне нужно выбрать по id из table1 и table2 если у table2 id_value равно определенным значениям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 12:36:01 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
типо вывести все id если id_value = 10 и id_value = 12 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 12:40:23 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
JOIN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 12:42:42 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
Добрый Э - ЭхJOIN не понял? SELECT t1.`id` FROM `table1` t1 LEFT JOIN `table2` t2 ON (е1.`id`=t2.`id`) WHERE t2.`id_value` =10 AND t2.`id_value` =12 Это ж не правильно а если поставлю t2.`id_value` =10 OR t2.`id_value` =12 то результат не тот что мне нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 12:58:23 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
а я за LEFT JOIN ничего не говорил, если что. Но даже с ним сделать можно (но не нужно), просто условия фильтрации указывать в секции WHERE, а не в ON ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 13:44:51 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
rusichbdaWHERE t2.`id_value` =10 >>>AND<<< t2.`id_value` =12И как ты себе это представляешь, чтобы одно и тоже значение одновременно равнялось и 10, и 12? Тут только OR, без вариантов (про IN(), =ANY(), =SOME() не говори - все они в итоге через OR и расписываются) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 13:55:00 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эха я за LEFT JOIN ничего не говорил, если что. Но даже с ним сделать можно (но не нужно), просто условия фильтрации указывать в секции WHERE, а не в ON все равно не пойму SELECT t1.id FROM `table1` t1 JOIN `table2` t2 WHERE t2.`id_value` IN (157081,49) AND t1.`id` = t2`id` так??? но результат ни чем не отличается от выше указанного запроса вы можете написать как вы имеете ввиду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:06:10 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
Добрый Э - ЭхrusichbdaWHERE t2.`id_value` =10 >>>AND<<< t2.`id_value` =12И как ты себе это представляешь, чтобы одно и тоже значение одновременно равнялось и 10, и 12? Тут только OR, без вариантов (про IN(), =ANY(), =SOME() не говори - все они в итоге через OR и расписываются) да, я об этом и написал после его написания выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:07:22 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
rusichbdatable1 (id) 1 2 3 4 5 table2(id, id_value) 1 10 2 11 1 12 2 13 5 14 1 15 2 10 как получить вот такой результат: 1 10 1 12 2 10 т.е. мне нужно выбрать по id из table1 и table2 если у table2 id_value равно определенным значениям Совершенно дословно и в точном соответствии с приведенными тестовыми данными и результирующим набором... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:08:35 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эхrusichbdatable1 (id) 1 2 3 4 5 table2(id, id_value) 1 10 2 11 1 12 2 13 5 14 1 15 2 10 как получить вот такой результат: 1 10 1 12 2 10 т.е. мне нужно выбрать по id из table1 и table2 если у table2 id_value равно определенным значениям Совершенно дословно и в точном соответствии с приведенными тестовыми данными и результирующим набором... блин как все просто!!!! СПАСИБО ВАМ!!!! я вас не так понял, уже голова не варит, 3й день бьюсь( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:12:20 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
rusichbdatable1 (id) как получить вот такой результат: 1 10 1 12 2 10 извеняюсь, запарился, не такой результат нужен, а вот такой: 1 10 1 12 т.е. вывести только тот результат у которго присутствует и 10 "И" 12 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:20:50 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
Это называется - реляционное деление. Вариантов реализации - масса. Самые простые и интуитивно понятные построены либо на EXISTS-подзапросах, либо на запросах с GROUP BY и HAVING. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:25:03 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
вот какой результат подходит но для моей версии mysql (( т.к. в ней такой резельтат долго работает, по 10мин если там тысячи записей SELECT * FROM `table1` p WHERE id IN (SELECT id FROM `table2` WHERE `id_value`=10 OR `id_value`=12 GROUP BY id HAVING count(id)=2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:27:28 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
похоже надо копать в EXISTS , спасибо за наводку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:28:17 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:29:09 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
rusichbdaвот какой результат подходит но для моей версии mysql (( т.к. в ней такой резельтат долго работает, по 10мин если там тысячи записей SELECT * FROM `table1` p WHERE id IN (SELECT id FROM `table2` WHERE `id_value`=10 OR `id_value`=12 GROUP BY id HAVING count(id)=2) Замени IN-подзапрос на JOIN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:30:15 |
|
||
|
Выборка значения равное из другой таблицы
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эхrusichbda, вариант на EXISTS-подзапросе то что доктор приписал!!! спасибо, именно то что я искал!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 14:49:29 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=203&tid=1835854]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 205ms |
| total: | 340ms |

| 0 / 0 |
