Re: Діалоги / 2 користувача
ваш 0.0015 - 0.0017 с.
Мій з union all чи самий останній?
перший правильний (union all), а самий останній взагалі 0.0025.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Бази даних → Діалоги / 2 користувача
Для відправлення відповіді ви повинні увійти або зареєструватися
ваш 0.0015 - 0.0017 с.
Мій з union all чи самий останній?
перший правильний (union all), а самий останній взагалі 0.0025.
Так все-таки, ви тестуєте на чому? На таблицях з індексами й реальними даними, чи на щойно створених таблицях, без індексів й без реальних даних?
Якщо перше, то цікаво глянути explain з вашого і мого останнього запиту.
Як я і казав, на щойно створених таблицях без реальних даних - взагалі ні про що не говорить.
З індексами вилітало наступне, при моєму або вашому запиті.
Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.
Це я так розумію тому, що в видачі немає id, до якого можна привязати індекс.
Але ж вибірка все-одно була, так? Якщо - так, це не страшно. Просто вам будуть не доступні перераховані дії.
Оскільки у запиті використовуються не однозначні джоїни, то редактор не розуміє над якою сутністю робити певні дії.
Якщо вам потрібен 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)
Для відправлення відповіді ви повинні увійти або зареєструватися