Чат Telegram
Группа ВКонтакте
Новый комментарий

Pavel-Tonk 18.12.2018 в 01:48

В теме "Вторая нормальная форма" - 2 пример, MySQL ругается на то что нет ";" в конце, а так же на "---" вместо "--"=)

--- Удалить дублирующие данные пользователей из таблицы customers
DELETE c1.* FROM customers AS c1 INNER JOIN customers AS c2 ON c1.telephone = c2.telephone WHERE c1.id > c2.id
ivashkevich 20.12.2018 в 09:23

Спасибо, поправил.

radinpasha13@gmail.com 18.03.2019 в 19:00

DELETE c1.* FROM customers AS c1 INNER JOIN customers AS c2 ON c1.telephone = c2.telephone WHERE c1.id > c2.id;.Можете объяснить подробнее эту строчку.Что означает точка и звездочка и знак больше в конце?

85bogdan45 18.03.2019 в 23:54

Плюсую вопрос. Не понял откуда возникли с1, с2

radinpasha13@gmail.com 18.03.2019 в 23:57

c1 и c2- псеводнимы, вроде как.

ivashkevich 19.03.2019 в 23:12

Это алиасы для таблицы customers.

ivashkevich 19.03.2019 в 23:12

Точка и звёздочка - это всё поля таблицы. Джойним табличку саму на себя. Находим записи с одинаковыми телефонами и удаляем ту, у которой id больше, чем у другой. Таким образом остается только одна запись для каждого номера.

radinpasha13@gmail.com 19.03.2019 в 23:13

Спасибо,теперь ясно

fosfat 17.08.2019 в 22:31

А почему у вас в типе данных VARCHAR значение занимаемого объема стоит, например, 256, 1000, 500? В то время, как значение этого типа НЕ может быть больше 255, у вас же это даже указано в таблице статьи "Команды MySQL". Для длинных строк стоит использовать, например, TEXT и др.

То же самое наблюдаю в предыдущей и последующей статьях.

ivashkevich 18.08.2019 в 07:01

В современных версиях MySQL это ограничение гораздо больше.

fosfat 18.08.2019 в 14:15

Действительно. В официальной документации по последней 8 версии указано, что диапазон значений от 0 до 65,535. Цитата: "Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 65,535".

gekadyadya@gmail.com 08.12.2019 в 00:59

А связи покупатель-адрес? А вдруг покупатель может получать покупку по нескольким адресам, напр с понедельника по среду живет по одному адресу, а оставшиеся дни по другому и не хочет ждать определенной части недели для получения покупки? А вдруг одним телефоном пользуются несколько покупателей? Напр это рабочий телефон, и все работники не хотят светить свой личный, вот и регятся на рабочий?

ivashkevich 09.12.2019 в 03:45

Пожалуйста, вы можете улучшать структуру как угодно. Предлагаю вам сделать это самостоятельно в качестве домашнего задания.

X-Nick 26.02.2020 в 21:45

Я вот пока смотрю на структуру базы данных в целом - вижу что, где и куда. Как только нет перед глазами структур и связей таблиц - перед глазами туман. Это при любом изменении в БД нужно визуальное представление БД? Невозможно же это делать по памяти?) И насчет команд(особенно когда только это осваиваешь) - их нужно прямо помнить/запоминать наизусть или можно где-то иметь шпаргалки и подсматривать, если что?

ivashkevich 28.02.2020 в 05:03

Изменения как правило затрагивают несколько полей, и свободно помещаются в голову. При проектировании чего-то большого, что не помещается целиком в вашей голове, конечно стоит рисовать и визуализировать.
Команды запоминать нужно наизусть. Их не так много.

OLEG-M Patron 13.04.2020 в 12:01

Попробовал ради прикола , сработало )

SELECT a.name, u.name, p.about FROM articles AS a INNER JOIN users AS u INNER JOIN profiles AS p ON a.author_id=u.id=p.id;

Изи!))

Спасибо за классные уроки.

ivashkevich 13.04.2020 в 14:58

Круто! На здоровье)

Fill Patron 17.04.2020 в 19:46

Если не знаем id категории

SELECT a.name, a.text FROM articles AS a
INNER JOIN articles_categories AS ac ON ac.article_id=a.id 
INNER JOIN categories AS c ON c.id=ac.category_id 
WHERE c.name="Новости о животных";

Если знаем id категории

SELECT a.name, a.text FROM articles AS a
INNER JOIN articles_categories AS ac ON ac.article_id=a.id
WHERE ac.category_id = 3;
ivashkevich 18.04.2020 в 05:55

Супер!

YuraG 19.04.2020 в 13:03
 SELECT a.name FROM articles AS a INNER JOIN articles_categories AS ac ON a.id=ac.article_id INNER JOIN categories AS c ON ac.category_id=c.id WHERE c.name='Новости о животных';
ivashkevich 19.04.2020 в 15:52

Отлично

studentDev Patron 20.04.2020 в 10:18
SELECT a.name FROM articles AS a INNER JOIN articles_categories AS ac ON ac.article_id=a.id INNER JOIN categories AS c ON ac.category_id=c.id WHERE c.id=3;

В принципе всё работает...

ivashkevich 20.04.2020 в 17:52

Отлично!

n.yurasheva 22.04.2020 в 11:48
SELECT a.name, a.text FROM articles AS a 
INNER JOIN articles_categories AS ac ON ac.article_id=a.id 
INNER JOIN categories AS c ON c.id=ac.category_id
WHERE c.name="Новости о животных";
ivashkevich 22.04.2020 в 12:15

Отлично

Timurik Patron 27.04.2020 в 13:41

это если названия статей:

SELECT a.name FROM categories AS c 
INNER JOIN articles_categories AS ac ON ac.category_id=c.id 
INNER JOIN articles AS a ON a.id=ac.article_id 
WHERE c.name="Новости о животных";

а это если текст статей

SELECT a.text FROM categories AS c 
INNER JOIN articles_categories AS ac ON ac.category_id=c.id 
INNER JOIN articles AS a ON a.id=ac.article_id 
WHERE c.name="Новости о животных";
ivashkevich 27.04.2020 в 20:06

Отлично

titelivus 08.05.2020 в 06:48

Ух это было нелегко) но получилось)

SELECT a.name FROM articles AS a 
INNER JOIN articles_categories AS ac ON a.id=ac.article_id 
INNER JOIN categories AS c ON c.id=ac.category_id 
WHERE c.name='Новости о животных';
ivashkevich 08.05.2020 в 20:20

Отлично

Sviatoslav Patron 28.05.2020 в 21:22

Д/З

SELECT a.name, a.text FROM articles AS a  
INNER JOIN articles_categories AS ac ON ac.category_id=a.id  
INNER JOIN categories AS c ON c.id=ac.article_id  
WHERE c.name="Новости о животных";
ivashkevich 29.05.2020 в 05:27

Отлично

tsaruk4356@gmail.com Patron 04.06.2020 в 20:19
SELECT a.name FROM articles AS a 
INNER JOIN articles_categories AS ac ON a.id = ac.article_id
INNER JOIN categories AS c ON c.id = ac.category_id
WHERE c.name = "Новости о животных";
ivashkevich 06.06.2020 в 08:08

Отлично

IePyton Patron 05.06.2020 в 12:16
SELECT a.name FROM `articles` AS a
INNER JOIN articles_categories AS ac ON ac.article_id=a.id
INNER JOIN categories AS c ON c.id = ac.category_id
WHERE c.name="Новости о животных"
ivashkevich 06.06.2020 в 08:20

Отлично

NR Patron 23.06.2020 в 02:23
SELECT a.name FROM articles AS a INNER JOIN articles_categories AS ac ON ac.article_id=a.id INNER JOIN categories AS c ON c.id=ac.category_id WHERE c.id=3

Спасибо за урок!

ivashkevich 23.06.2020 в 09:57

Отлично) На здоровье)

garetziro@gmail.com Patron 23.06.2020 в 23:08

Спасибо за урок.

SELECT a.name FROM articles AS a INNER JOIN articles_categories AS ac ON a.id = ac.article_id INNER JOIN categories AS c ON ac.category_id = c.id WHERE c.name = 'Новости о животных';

Подскажите, пж, вы используете в примерах двойные кавычки, но, вроде, и с одинарными все отрабатывает. В PHP уроках привык одинарные ставить, можно и здесь, в SQL, не изменять привычке?

ivashkevich 24.06.2020 в 14:27

В PHP это оправдано тем, что данные внутри одинарных кавычек не подлежат парсингу. Здесь - без разницы.

Логические задачи с собеседований