|
RIGHT JOIN
|
|||
---|---|---|---|
#18+
Помогите, пожалуйста, разобраться. Вот такой запрос Код: sql 1. 2. 3. 4.
по смыслу должен возвратить данные по всем контрагентам, имеющимся в таблице contragents . Если данных по контрагенту в заданный период нет, то NULL. Правильно? Но в результате выбираются только те контрагенты, по которым есть данные в таблице data в заданный период. В чем ошибка? (MySQL v8.0.13.0) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2020, 11:42 |
|
RIGHT JOIN
|
|||
---|---|---|---|
#18+
LiYing, не правильно, left вместо right ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2020, 12:19 |
|
RIGHT JOIN
|
|||
---|---|---|---|
#18+
LiYing, не правильно. Перенесите условие в ON ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2020, 12:19 |
|
RIGHT JOIN
|
|||
---|---|---|---|
#18+
LiYing, Перенесите условие по дате в условия соединения таблиц. В секции where оно ещё отбросит null-ы, образовавшиеся из отсутствия подходящей записи в таблице data. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2020, 12:24 |
|
RIGHT JOIN
|
|||
---|---|---|---|
#18+
Спасибо всем, с переносом условия заработало как надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2020, 13:02 |
|
RIGHT JOIN
|
|||
---|---|---|---|
#18+
LiYing, WHERE d.period='2018-05-01' превращает LEFT/RIGHT в простой INNER JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2020, 14:20 |
|
|
start [/forum/topic.php?fid=47&fpage=24&tid=1828701]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 143ms |
0 / 0 |