41 Востаннє редагувалося VTrim (05.10.2017 20:43:08)

Re: Діалоги / 2 користувача

ktretyak написав:

ваш 0.0015 - 0.0017 с.

Мій з union all чи самий останній?

перший правильний (union all), а самий останній взагалі 0.0025.

42

Re: Діалоги / 2 користувача

Так все-таки, ви тестуєте на чому? На таблицях з індексами й реальними даними, чи на щойно створених таблицях, без індексів й без реальних даних?

Якщо перше, то цікаво глянути explain з вашого і мого останнього запиту.

43

Re: Діалоги / 2 користувача

Щойно створених,  без індексів.
Зараз скину..

44

Re: Діалоги / 2 користувача

Як я і казав, на щойно створених таблицях без реальних даних - взагалі ні про що не говорить.

45

Re: Діалоги / 2 користувача

Ваш останній.
https://image.prntscr.com/image/XBhtsWpsTWGiTXMUODbKmw.png

46

Re: Діалоги / 2 користувача

З індексами вилітало наступне, при моєму або вашому запиті.

Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.

Це я так розумію тому,  що в видачі немає id, до якого можна привязати індекс.

47

Re: Діалоги / 2 користувача

Але ж вибірка все-одно була, так? Якщо - так, це не страшно. Просто вам будуть не доступні перераховані дії.

Оскільки у запиті використовуються не однозначні джоїни, то редактор не розуміє над якою сутністю робити певні дії.
Якщо вам потрібен id, то останній мій запит треба написати так:

select
    if(d.first_user = 1, u2.id, u1.id) as id,
    if(d.first_user = 1, u2.name, u1.name) as second_user_name
from dialogs as d
    join user as u1
        on d.first_user = u1.id
    join user as u2
        on d.secound_user = u2.id
where 1 in(d.first_user, d.second_user)