Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

koceww avatar koceww 4 Точки

Non-Directory Files - DB Basics

Здравейте. Очевидно лесна задачка , но ме затрудни и не мога да се сетя как да напиша връзката. 

Разбирам какво трябва да се направи и какво е условието , но не се досещам как.

Това е моето решение , което е грешно очевидно но изкарва донякъде правилен резултат.

Ако може да подскажете или да обясните как трябва да се направи връзката за да получим правилен резултат.Мерси!

SELECT Id,[Name],CONCAT(Size,'KB') as Size FROM Files
WHERE Id != ParentId
ORDER BY Id,Name,Size DESC

8.Non-Directory Files

Examples        

Select all of the files, which are NOT a parent to any other file. Select their size of the file and add "KB" to the end of it. Order them file id (ascending), file name (ascending) and file size (descending).

Id

Name

Size

6

Controller.json

14034.87KB

12

Model.MD

4753.67KB

17

Login.html

2863.23KB

..

Тагове:
1
Databases Basics - MySQL 17/06/2020 13:01:20
Bobby_Apostolov avatar Bobby_Apostolov 128 Точки

Здравей, и на мен ми трябваше време докато схвана идеята на задачата, от диаграмата виждаме, че Files има връзка със себе си, надали просто са я сложили за красота, join-ваме Files със себе си, и трябва да видим, кои записи със Ид-то на parentId-то от лявата таблица не съществуват, LEFT JOIN и търсим NULL
ако не съм го обяснил като хората, ето как съм го направил, да се ориентираш по кода..странно е да

SELECT f1.Id, f1.[Name], CONCAT(f1.Size,'KB') AS [Size]
    FROM Files as f1
    LEFT JOIN Files as f2 ON f1.Id = f2.ParentId
    WHERE f2.Id IS NULL
    ORDER BY f1.Id,f1.[Name],f1.Size DESC

0
18/06/2020 14:37:27
koceww avatar koceww 4 Точки

Да, разбрах го . Благодаря за обяснението. Сега вече придоби смисъл и разбира се разбрах как се решава. Мерси

1
m.nikolov97 avatar m.nikolov97 25 Точки

Здравей!

Аз също имах известни затруднения с въпросната задача. Попаднах на твоята тема, но в общи линии исках да си довърша моето решение, защото това ми изглеждаше малко по-сложно написано, отколкото би трябвало да е.

Та просто, за  да има още един вариант, пускам моя скрипт:

SELECT Id, Name, CONVERT(VARCHAR(15), Size) + 'KB' As Size FROM Files
WHERE Id NOT IN (SELECT ParentId FROM Files WHERE ParentId IS NOT NULL) 
ORDER BY Id, Name, Size DESC

Успех на изпита утре! smiley

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.