честно говоря, совсем не понимаю, что с чем мы объединяем при: SELECT c1.name FROM city c1 INNER JOIN city c2 ON c1.name = c2.name WHERE c1.id c2.id; Потому что при: SELECT c1.name FROM city c1 INNER JOIN city c2 ON c1.name = c2.name WHERE c1.id c2.id ORDER BY c1.name; Вывод ... 6xSpringfield ... 2xZeleznogorsk при SELECT name FROM city WHERE name LIKE 'Springfield'; Вывод: Springfield Springfield Springfield при SELECT name FROM city WHERE name LIKE 'Zeleznogorsk'; Вывод: Zeleznogorsk Zeleznogorsk Теперь вопрос, что с чем мы объединяли? :) Ведь, по сути, должно быть тогда 6xSpringfield и 4xZeleznogorsk?
если пишете ON c1.name = c2.name, значит объединяете таблицу саму с собой. в таблице city присутствует 3xSpringfield. Когда вы объединяете таблицу city саму с собой, рассматриваются 3xSpringfield в одной и 3xSpringfield (те же самые) в другой. При объединении таблиц их записи сочетаются во всех вариантах, то есть где-то в памяти сервера получается условный набор: c1.id1 c2.id1 - c1.id1 c2.id2 + c1.id1 c2.id3 + c1.id2 c2.id1 + c1.id2 c2.id2 - c1.id2 c2.id3 + c1.id3 c2.id1 + c1.id3 c2.id2 + c1.id3 c2.id3 - Условный, потому что вместо реальных идентификаторов городов Springfield, указаны idN. Под условие c1.id c2.id попадают те записи, которые выделены знаком '+' (у них id разные),
@@HtmllabRu что странно так это каким образом "chcp 65001" связана с "UTF-8"? было бы логично сделать команду аля set_encrypting -cUTF-8 или типо такого
очень крутое видео! спасибо! включила, чтобы уточнить один момент и не заметила, как досмотрела до конца) вы так интересно рассказываете)
Александра, спасибо!))
03:49 То чувство, когда ты из Железногорска
Отличное видео!
Здравствуйте! Подскажите, почему 6:05 у нас 4xSpringfield, но при выдаче SELECT 6:47 у нас 3xSpringfield?
честно говоря, совсем не понимаю, что с чем мы объединяем при:
SELECT c1.name
FROM city c1 INNER JOIN city c2
ON c1.name = c2.name
WHERE c1.id c2.id;
Потому что при:
SELECT c1.name
FROM city c1 INNER JOIN city c2
ON c1.name = c2.name
WHERE c1.id c2.id
ORDER BY c1.name;
Вывод
...
6xSpringfield
...
2xZeleznogorsk
при
SELECT name
FROM city
WHERE name LIKE 'Springfield';
Вывод:
Springfield
Springfield
Springfield
при
SELECT name
FROM city
WHERE name LIKE 'Zeleznogorsk';
Вывод:
Zeleznogorsk
Zeleznogorsk
Теперь вопрос, что с чем мы объединяли? :) Ведь, по сути, должно быть тогда 6xSpringfield и 4xZeleznogorsk?
если пишете ON c1.name = c2.name, значит объединяете таблицу саму с собой.
в таблице city присутствует 3xSpringfield. Когда вы объединяете таблицу city саму с собой, рассматриваются 3xSpringfield в одной и 3xSpringfield (те же самые) в другой. При объединении таблиц их записи сочетаются во всех вариантах, то есть где-то в памяти сервера получается условный набор:
c1.id1 c2.id1 -
c1.id1 c2.id2 +
c1.id1 c2.id3 +
c1.id2 c2.id1 +
c1.id2 c2.id2 -
c1.id2 c2.id3 +
c1.id3 c2.id1 +
c1.id3 c2.id2 +
c1.id3 c2.id3 -
Условный, потому что вместо реальных идентификаторов городов Springfield, указаны idN.
Под условие c1.id c2.id попадают те записи, которые выделены знаком '+' (у них id разные),
@@HtmllabRu спасибо Вам огромное!
как можно с вами связаться
по почте или по ватсапу
Азамат, в описании канала емейл
выдача:
| ?ahty |
| ?guas Lindas de Goi?s |
| ?iauliai |
| ?orlu |
| ?orum |
| Zimbabwe |
| Zambia |
| Yugoslavia |
| Yemen |
| Western Sahara |
Понятно, что дело в кодировке. Но как ее поменять ?
в консоли cmd поменять кодировку на UTF-8 можно командой chcp 65001
@@HtmllabRu что странно так это каким образом "chcp 65001" связана с "UTF-8"? было бы логично сделать команду аля set_encrypting -cUTF-8 или типо такого
@@alexeicodes тут было бы интересно почитать историю разработки chcp, чем авторы руководствовались