|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Есть две талибцы: 1. TABLE1 поля -id -idchet -fio 2. TABLE2 поля -idtable1 -data1 -data2 ЗНАЧЕНИЯ TABLE1: id=1 idchet=123 fio=Иванов Иван Иванович id=2 idchet=123 fio=Петров Петр Петрович id=3 idchet=124 fio=Сидоров Петр Петрович TABLE2: idtable1=1 data1=01.05.2021 data2=02.05.2021 idtable1=1 data1=03.05.2021 data2=04.05.2021 idtable1=1 data1=04.05.2021 data2=05.05.2021 idtable1=2 data1=01.06.2021 data2=02.06.2021 idtable1=2 data1=03.06.2021 data2=04.06.2021 idtable1=2 data1=04.06.2021 data2=05.06.2021 УСЛОВИЕ: idchet=123 TABLE1.id=TABLE2.idtable1 ЗАДАЧА Выбрать минимальную data1 и максимальную data2 у Иванов Иван Иванович (id=1) и Петров Петр Петрович (id=2) PS Сидоров Петр Петрович (id=3) jотпадает так как не срабатывает условие idchet=123 Большое спасибо за помощь в скрипте. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2021, 23:08 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
1. Приводите таблицы в нормальный, читабельный вид. Сложно? TABLE1: id idchet fio1 123 Иванов Иван Иванович2 123 Петров Петр Петрович3 124 Сидоров Петр Петрович TABLE2: idtable1 data1 data21 01.05.2021 02.05.20211 03.05.2021 04.05.20211 04.05.2021 05.05.20212 01.06.2021 02.06.20212 03.06.2021 04.06.20212 04.06.2021 05.06.2021 2. Описывайте типы данных в таблице. Сложно? Будем считать, что у вас timestamp. 3. Ваше "УСЛОВИЕ" как-то противоречит "ЗАДАНИЮ". Вам "idchet=123" или "id=1 и id=2"? Или "idchet=123 и id=1 и id=2"? Формулируйте нормально. Ну вот как-то так: Код: sql 1. 2. 3. 4.
Результат: id idchet fio mindata maxdata 1123Иванов Иван Иванович2021-05-01 00:00:002021-05-05 00:00:002123Петров Петр Петрович2021-06-01 00:00:002021-06-05 00:00:00 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2021, 05:23 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Забавно. "Новичок" за 1 год так и не научился ничему. Только темы создаёт чтобы за него всё делали ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2021, 09:40 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
в данном случае получим JOIN, не LEFT JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2021, 00:38 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Alex_Ustinov, из-за MIN(), MAX() ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2021, 10:04 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
FreeAdman, из-за WHERE ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2021, 17:23 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Alex_Ustinov, чушь какая-то. С чего это вдруг ? WHERE - условие выборки с первой таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2021, 18:35 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
FreeAdman чушь какая-то. С чего это вдруг ? WHERE - условие выборки с первой таблицы TABLE1.id=TABLE2.idtable1 , помещённое во WHERE, немедленно превращает LEFT JOIN table2 в неподходящее INNER JOIN table2 . ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2021, 19:48 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Akina FreeAdman чушь какая-то. С чего это вдруг ? WHERE - условие выборки с первой таблицы TABLE1.id=TABLE2.idtable1 , помещённое во WHERE, немедленно превращает LEFT JOIN table2 в неподходящее INNER JOIN table2 . А где вы увидели в "WHERE `t1`.`idchet`='123'" — TABLE1.id=TABLE2.idtable1 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 07:49 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
FreeAdman, на пальцах: LEFT JOIN - создан для "показа" всей "левой таблицы" с приклеенными элементами "правой таблицы" (там где они есть, где нет - NULL). в ON - условиЯ соединения правой таблицы, это условие не "подрезает" левую таблицу ни в коем случае. WHERE работает (условно) в самом конце, подрезает левую таблицу по условию `t1`.`idchet`='123' в рез-те мы не увидим записи с idchet=124, получаем то же самое что и с INNER JOIN Запрос с LEFT JOIN + WHERE даст тот же результат, но даже по условию задачи он НЕ НУЖЕН можно поиграться здесь -> https://dbfiddle.uk/?rdbms=mysql_8.0 если под рукой нет MySQL. посмотреть что даст в результате запрос с WHERE `t1`.`idchet`='123' и без него, с INNER и LEFT JOIN. На бумаге иногда это затруднительно увидеть ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 08:52 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
FreeAdman А где вы увидели в "WHERE `t1`.`idchet`='123'" — TABLE1.id=TABLE2.idtable1 ? andryus УСЛОВИЕ: idchet=123 TABLE1.id=TABLE2.idtable1 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 09:46 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Akina FreeAdman А где вы увидели в "WHERE `t1`.`idchet`='123'" — TABLE1.id=TABLE2.idtable1 ? andryus УСЛОВИЕ: idchet=123 TABLE1.id=TABLE2.idtable1 Голову включите, уважаемый. Автор сам не понимает что ему нужно и фантазирует условия. Я в своём сообщении написал, что его ЗАДАЧА противоречит УСЛОВИЮ. Это если культурно объяснить ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 10:17 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Alex_Ustinov, ну, можно и INNER. Только если даты в БД не будет, INNER ничего не вернёт. А вообще, пусть автор разбирается ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 10:25 |
|
|
start [/forum/topic.php?fid=47&fpage=9&tid=1828079]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 169ms |
0 / 0 |