|
Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема
|
MySQL -> ORDER BY
|
|
Автор |
Dakota (erotoman) |
Публикувано | 15.10.03 17:33 |
|
Имам 2 таблици - table_x и table_y.
Правя им join и ги сортирам:
SELECT
x.id,
y.name
FROM
table_y y INNER JOIN table_x x
ON
x.y_id=y.id
ORDER BY
2
Интересува ме как MySQL сортира резултата в случай, че y.name е едно и също?
Everything louder than everything else...
| |
|
На времето брах ядове.
Дали не можеш да минеш с обикновен селект?
| |
Тема
|
Re: MySQL -> ORDER BY
[re: Dakota]
|
|
Автор |
ro6avia (ламерясал) |
Публикувано | 15.10.03 19:24 |
|
Както казва salle ЗАВИСИ
направи го :
SELECT
x.id,
y.name
FROM
table_y y INNER JOIN table_x x
ON
x.y_id=y.id
ORDER BY
2,1 както си се изразил :-))
Е тук нищо няма:
| |
Тема
|
Re: MySQL -> ORDER BY
[re: Dakota]
|
|
Автор |
salle (един такъв) |
Публикувано | 15.10.03 22:11 |
|
Случайно естествено. Как иначе?
| |
Тема
|
Re: MySQL -> ORDER BY
[re: salle]
|
|
Автор |
Dakota (erotoman) |
Публикувано | 16.10.03 12:01 |
|
Как така случайно?...Точно от това се страхувах. Не би ли трябвало една и съща заявка при наличие на едни и същи данни винаги да изкарва едно и също нещо?!...Да взима default сортирането на таблиците, които join-вам една след друга и така да сортира...но само не и random!
Everything louder than everything else...Редактирано от Dakota на 16.10.03 12:03.
| |
Тема
|
Re: MySQL -> ORDER BY
[re: Dakota]
|
|
Автор |
voyager (прасе в космоса) |
Публикувано | 16.10.03 14:11 |
|
Не би ли трябвало една и съща заявка при наличие на едни и същи данни винаги да изкарва едно и също нещо?!
Цъ . (това даже и аз го знам )
Все пак защо просто не сортираш?
Второ (това просто си питам) - има ли някаква реална полза от тоя JOIN в момента - искам да кажа с нещо по-добър ли е от още една клауза в WHERE?
| |
Тема
|
Re: АБВ на Релационните БД ... пак
[re: Dakota]
|
|
Автор |
salle (един такъв) |
Публикувано | 16.10.03 14:36 |
|
Dakota
Това май вече сме ти го обяснявали ...
"Не би ли трябвало една и съща заявка при наличие на едни и същи данни винаги да изкарва едно и също нещо?!"
Проблема ти е в разбирането на НЕЩОТО.
Та значи според релационния модел таблиците са множества.
А според теорията на множествата (x, y, z) и (z, x, y) е едно и също множество - реда няма значение.
Точно затова когато НЕ СИ указал ORDER BY сървъра е в правото си да ти върне резултата в произволен ред. Забележи, че дори не е случаен а е произволен.
Тъй, че една и съща заявка без ORDER BY при едни и същи данни ще ти връща едно и също множество от редове, но може при 10 последователни изпълнения да ти ги върне в 10 различни подредби.
Между другото ако това правило не съществуваше огромна част от оптимизациите в базите данни нямаше да са възможни.
| |
Тема
|
Re: АБВ на Релационните БД ... пак
[re: salle]
|
|
Автор |
Dakota (erotoman) |
Публикувано | 16.10.03 16:13 |
|
Не си спомням, да сте ми го обяснявали.
Мерси за разяснението, все пак.
По тази логика, обаче, излиза, че дори да нямам JOIN, то пак MySQL би трябвало да ми връща нещата в произволен ред, но в действителност не е така...или пак бъркам?!
Everything louder than everything else...
| |
Тема
|
Re: MySQL -> ORDER BY
[re: voyager]
|
|
Автор |
Dakota (erotoman) |
Публикувано | 16.10.03 16:23 |
|
1. Не ги сортирах, защото не знаех за това поведение на MySQL. Използвам един Paging/Sorting class, който написах, и в който подавам параметри, един от които е полето, по което да се сортира - като номер. Изглежда ще трябва да добавя едно допълнително ,1 в ORDER BY частта, дори и да се получават абсурдни заявки като ...ORDER BY 1 DESC, 1.
2. Всъщност, дори и да вкарам нещата в WHERE частта, това би било разносилно на INNER JOIN. А принципно, моята заявка е със 7-8 таблици, така че не става.
Everything louder than everything else...
| |
Тема
|
Re: АБВ на Релационните БД ... пак
[re: Dakota]
|
|
Автор |
salle (един такъв) |
Публикувано | 16.10.03 16:56 |
|
Точно така.
Прави разлика обаче между случаен и произволен.
Произволен значи, че сървъра има правото да го избира. Включително и винаги да е един и същ. Въпросът е, че в момента в който не указваш изрично ORDER BY всъщност казваш на сървъра, че те ти пука какъв ще е редът. Това е логиката. И тя винаги е била такава за релационните бази данни
| |
|
Страници по тази тема: 1 | 2 | >> (покажи всички)
|
|
|