Valick
Цитата |
имена в этих таблицах должны быть идентичными, а уж с префиксами они там будут или без них разницы вообще никакой. |
Вооот!!! Идентичными. Одинаковыми. А с префиксом будут разные.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
glock18
Цитата |
Это запрос, который привел Allesklar, и на который вы, Валик, ответили, что надо было использовать using. |
Справедливости ради нужно отметить, что про этот запрос никто не говорил. Говорили как раз о том, что USING при таком раскладе (когда нет общего поля) использоваать нельзя. Ну по крайней мере я так говорил и так же воспринял слова
Valick'a
А вот дальше его немного занесло, да.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Valick
20.03.2014 - 19:13
glock18SELECT * FROM users
LEFT JOIN ban ON (users.u_id = ban.u_id)
LEFT JOIN access ON (ban.b_id = access.b_id)
SELECT * FROM users
LEFT JOIN ban USING(u_id)
LEFT JOIN access USING(b_id)
_____________
Стимулятор ~yoomoney - 41001303250491
glock18
20.03.2014 - 19:14
Valick
проверили хоть или рассчитываете на свое всеобъемлющее знание?
EDIT: так, ну все, я сам проверил, и с удивлением обнаружил, что неправ. Вполне вероятно, что когда давно это пробовал, просто делал опечатки, но дела это не меняет. Николай, переводи меня в разряд смертных
Valick
20.03.2014 - 19:28
Цитата |
Вооот!!! Идентичными. Одинаковыми. А с префиксом будут разные. |
Внимание!!! Включаю "лося", если взять префиксом одну единственную букву, то префиксы в таблицах table1 и table2
БУДУТ ОДИНАКОВЫЕ,
t_
_____________
Стимулятор ~yoomoney - 41001303250491
Да почему в таблицах должен быть одинаковый префикс то? А если это связь с другой таблицей? Ну к примеру есть таблица users и таблица moderators. И есть еще две таблицы user_setting, где ключ u_id и таблица mod_setting, где ключ соответственно m_id. Всё остальное идентично.
И вдруг захотелось их объеденить в одну. Ну приспичило, не будем о целесообразностях и архитектурах. Тут суть важна. Я еще раз про смайлик напоминаю.
Вот в таком случае префикс помешает.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (glock18 @ 20.03.2014 - 15:38) |
Цитата (Valick @ 20.03.2014 - 15:25) | glock18, ненадо, я пошутил |
Ну я-то не шутил
|
Ага, давйте из-за таких глупостей модераторов разгонять теперь))) Да если бы каждый раз это делать, то я бы наверное сейчас даже в пейджере не имел права писать)))
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
sergeiss
20.03.2014 - 21:08
И чО спорят, а?
Вот запрос из реального проекта, связаны 3 таблицы (Постгре).
select ....
from relation_outlets_goods r
left join outlets o
using (id_outlet)
left join goods g
using( id_goods)
where .....
Именно так, как Валик писАл. И очень даже хорошо всё работает :) Да и с чего бы ему плохо работать? Я изначально даю одинаковые имена столбцам разных таблиц, по которым потом может идти связь. Мне лично так понятнее, чем в именах столбцов закладывать, кто там с чем связан.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Valick
20.03.2014 - 21:20
sergeiss, изначально речь шла о префиксах к именам таблиц, а уже потом плавно переросла про префиксы к именам полей. Я люблю когда у меня всё четко, ровно, информативно, упорядоченно и в меру унифицированно, поэтому я люблю префиксы. Я всего лишь возражаю против того, что префиксы якобы там каким-то образом мешают нормально работать с БД. Мне лично не мешают, за других я сказать не могу.
_____________
Стимулятор ~yoomoney - 41001303250491
glock18
20.03.2014 - 21:30
Цитата (sergeiss @ 20.03.2014 - 17:08) |
Именно так, как Валик писАл. И очень даже хорошо всё работает Да и с чего бы ему плохо работать? |
Я был уверен, скажем, из прошлого опыта, что using смотрит во все таблицы в запросе, а не две. В запросе даже порядок джойнов-то никак не задать, вторым джойном таблица может цепляться как ко второй, так и к первой таблице. И using по логике не должен бы успешно проходить всегда. По крайней мере, у меня using ругался на отсутствие колонки в третьей таблице, когда запрос писал на удаленном сервере. Пару раз это пробовал в разное время, и оба раза выдал такую ошибку. Возможно, конечно, что у меня была опечатка там оба раза одна и та же. Не очень вероятно, но возможно таки.
Мысль про невозможность определения одной из таблиц джойна при using на самом деле выглядит довольно таки резонной. Разве что сервер все таблицы проверяет на наличие такого поля аккуратно, и потом решает что с чем джойнить. Немного странно