powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Объединение 2-х таблиц
25 сообщений из 25, страница 1 из 1
Объединение 2-х таблиц
    #38366535
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени, уважаемые форумчане)
У меня возникла проблемка с объединением 2х таблиц.
и
с помощью предложения
Код: sql
1.
SELECT * FROM (SELECT  f.`id`, u.`nick`, u.`pol`, UNIX_TIMESTAMP(f.`time`) AS `time`, f.`author`, f.`visavi`, LEFT(u.`info`, u.`perviev`) AS `opis`, f.`ok`, UNIX_TIMESTAMP(f.`time`) AS `sort` FROM `ac_friend` AS f, `ac_user` AS u WHERE (f.`author` = 1 || f.`visavi` = 1) && u.`id` <> 1 && f.`ok` = '0' GROUP BY u.`id`) AS `w` ORDER BY `sort` DESC


получаем результат

Если же группировать по id таблицы друзей, тогда сливаются значение таблицы юзеров аналогичным способом.
.
Как оптимизировать этот запрос что-бы всё было как, надо.
За ранее Вам благодарен
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366553
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ja_Kazanovaчто-бы всё было как, надо.а как надо?
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366561
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir, не так как, на 2х последних скринах. То есть, что бы, для каждой колонки таблицы друзей выводилась информация с таблицы
юзеров не сливаясь как, на скринах
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366566
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто хочется обойтись без кучи не нужных вложенных запросов
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366584
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже всё перепробовал. И с предложением LEFT JOIN и без него, просто через запятую. Если группировать по значениям колонок id обеих таблиц,
Код: sql
1.
GROUP BY u.`id`, f.`id`


результат выводится словно группировки и не было. То есть сыпется куча не нужных столбцов.
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366592
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятнее не стало...
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366599
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только что, пересматривал главу о JOIN в одной книге и обнаружил там явную ошибку (ASC|DESC в связке с GROUP BY без AS не работает. А там утверждают обратное) дальше читать не стал
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366605
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, прочти SQL предложение представленное мной и взгляни на два последних скрина. А именно на значения полей nick, author, visavi. Почему при группировке по id таблицы юзверей, сливаются значения таблицы друзей и наоборот
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366648
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Песня...
Вот нафига тут вообще GROUP BY? Звучит красиво?
И связь всех со всеми - тоже, внушаить
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT * 
FROM (
  SELECT  
    f.`id`, 
    u.`nick`, u.`pol`, 
    UNIX_TIMESTAMP(f.`time`) AS `time`, f.`author`, f.`visavi`, 
    LEFT(u.`info`, u.`perviev`) AS `opis`, 
    f.`ok`, UNIX_TIMESTAMP(f.`time`) AS `sort` 
  FROM `ac_friend` AS f, `ac_user` AS u 
  WHERE 
    (f.`author` = 1 || f.`visavi` = 1) && 
    u.`id` <> 1 &&
    u.id=if(f.author=1,f.visavi,f.author) AND
    f.`ok` = '0' 
  GROUP BY u.`id`
  ) AS `w` 
ORDER BY `sort` DESC

Красное убрать, желтое добавить
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366650
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался, тему можно крыть. Вот правильное предложение,
Код: sql
1.
SELECT * FROM f.`id`, u.`nick`, u.`pol`, UNIX_TIMESTAMP(f.`time`) AS `time`, f.`author`, f.`visavi`, LEFT(u.`info`, u.`perviev`) AS `opis`, f.`ok`, UNIX_TIMESTAMP(f.`time`) AS `sort` FROM `ac_friend` AS f, `ac_user` AS u WHERE (f.`author` = u.`id` || f.`visavi` = u.`id`) && (f.`author` = 1 || f.`visavi` = 1) && u.`id` <> 1 && f.`ok` = '0' GROUP BY u.`id`) AS `w` ORDER BY `sort` 
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366654
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ja_KazanovaAkina, прочти SQL предложение представленное мной и взгляни на два последних скрина. А именно на значения полей nick, author, visavi. Почему при группировке по id таблицы юзверей, сливаются значения таблицы друзей и наоборот
я бы никому не советовал "это" "читать" ...

Код: sql
1.
2.
3.
4.
5.
6.
SELECT * FROM 
(SELECT  f.`id`, u.`nick`, u.`pol`, UNIX_TIMESTAMP(f.`time`) AS `time`, f.`author`, f.`visavi`, LEFT(u.`info`, u.`perviev`) AS `opis`, f.`ok`, UNIX_TIMESTAMP(f.`time`) AS `sort` 
FROM `ac_friend` AS f, `ac_user` AS u 
WHERE (f.`author` = 1 or f.`visavi` = 1) and u.`id` <> 1 and f.`ok` = '0' 
GROUP BY u.`id`) AS `w` 
ORDER BY `sort` DESC


автор, ты берёшь ВСЕ записи из таб.f в которых visavi или author=1
и декартово их умножаешь на ВСЮ таб.u (нуу, без одной записи) - на каждую запись из f - 100500-1 запись из u
и что бы окончательно всё запутать - группируешь всё, что получилось по id из u (по полю которого даже нет в выборке !)

пытаться найти логику в этом запросе - просто не реально, это бред 80 левела,

ТС, своими словами опиши, что тебе нужно получить
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366669
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112, Ваш вариант отличается лишь присутствием условия if в теле запроса. ID которое по Вашему отсутствует при выборке не нужно явно указывать в теле исполняемого запроса.
Хм. И, ээээ... Что Вы курите, мне как, медику стало даже интересно?..)
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366672
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ja_Kazanova, за применение group by не по делу - пороть надо, розгами, вплоть до полного понимания лишних действий, выполняемых сервером
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366674
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ja_KazanovaРазобрался, тему можно крыть. Вот правильное предложение,
Код: sql
1.
2.
3.
4.
SELECT * FROM f.`id`, u.`nick`, u.`pol`, UNIX_TIMESTAMP(f.`time`) AS `time`, f.`author`, f.`visavi`, LEFT(u.`info`, u.`perviev`) AS `opis`, f.`ok`, UNIX_TIMESTAMP(f.`time`) AS `sort` 
FROM `ac_friend` AS f, `ac_user` AS u 
WHERE (f.`author` = u.`id` || f.`visavi` = u.`id`) && (f.`author` = 1 || f.`visavi` = 1) && u.`id` <> 1 && f.`ok` = '0' GROUP BY u.`id`) AS `w` 
ORDER BY `sort` 


а это что за й.стыд ??


ХШ подсказует, что ТС хочет выбрать всех кто писал / кому отвечал юзер с ид=1
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select f.`id`, u.`nick`, u.`pol`, UNIX_TIMESTAMP(f.`time`) AS `time`, f.`author`, f.`visavi`, LEFT(u.`info`, u.`perviev`) AS `opis`, f.`ok`, UNIX_TIMESTAMP(f.`time`) AS `sort`
from `ac_friend` AS f inner join `ac_user` AS u on f.`visavi` = u.`id` 
where f.`author` = 1 and f.`ok` = '0'

union all

select f.`id`, u.`nick`, u.`pol`, UNIX_TIMESTAMP(f.`time`) AS `time`, f.`author`, f.`visavi`, LEFT(u.`info`, u.`perviev`) AS `opis`, f.`ok`, UNIX_TIMESTAMP(f.`time`) AS `sort`
from `ac_friend` AS f inner join `ac_user` AS u on f.`author` = u.`id` 
where f.`visavi` = 1 and f.`ok` = '0'

order by `sort`
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366679
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ja_Kazanovaqwerty112, Ваш вариант отличается лишь присутствием условия if в теле запроса. ID которое по Вашему отсутствует при выборке не нужно явно указывать в теле исполняемого запроса.
Хм. И, ээээ... Что Вы курите, мне как, медику стало даже интересно?..)
гмм, ... болезный, это твой запрос, просто отформатированный, ты чё - не узнал ?
просто так как ты верстаешь форматируешь запросы, верстают форматируют - ... ну ты понел
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366681
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cygapb-007, вы так и не ответили на вопрос
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366687
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112, что то не припоминаю что бы, мы переходили на ты. Но суть не в том, а в том что, с каждым Вашим новым сообщением я все больше утверждаюсь во мнении что, Вы не трезвы. Предположительно в состоянии наркотического опьянения. Но вот под чем именно, хотелось бы узнать
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366697
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112, и в окончание, хотелось бы дополнить сказанное. Для начала выучите Великий и Могучий, научитесь читать и читая, вникать в смысл прочитанного. Ведя беседу, проникаться уважением к визави дабы, легче осмыслить услышанное. Впрочем, подозреваю, данное не даст желанных плодов, напротив же вызовет агрессию с Вашей стороны. Бесплатный совет, обратитесь к психологу, наркологу, прочтите букварь а после несколько трудов по этикету. У меня всё. Ни пуха)
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366699
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ja_Kazanovaqwerty112, что то не припоминаю что бы, мы переходили на ты. Но суть не в том, а в том что, с каждым Вашим новым сообщением я все больше утверждаюсь во мнении что, Вы не трезвы. Предположительно в состоянии наркотического опьянения. Но вот под чем именно, хотелось бы узнать
ошибаешься,

походу, доктор из тебя - такое же г-ный как и программист...
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366700
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ja_Kazanovaqwerty112, и в окончание, хотелось бы дополнить сказанное. Для начала выучите Великий и Могучий, научитесь читать и читая, вникать в смысл прочитанного. Ведя беседу, проникаться уважением к визави дабы, легче осмыслить услышанное. Впрочем, подозреваю, данное не даст желанных плодов, напротив же вызовет агрессию с Вашей стороны. Бесплатный совет, обратитесь к психологу, наркологу, прочтите букварь а после несколько трудов по этикету. У меня всё. Ни пуха)
нуу вот, взял и обиделся ...

и тебе не кашлять :)
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366707
Ja_Kazanova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112, видимо по себе судите. Вам виднее
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366708
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ja_Kazanova, qwerty112,

Закончили, можно удалять?
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366712
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ja_Kazanova,

Кстати, я не понял, что не так в посте 14709523 ?
Технически qwerty112 прав (хотя, возможно, немного излишне эмоционален) - таблицы, действительно, соединяются без указания связи и GROUP BY, действительно, даст на выходе что попало.
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38366719
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ja_Kazanova,

Вы задали нечеткий вопрос и вас никто не понял.

Сударь попытался вам помочь [14709513].
Но следуюшим постом [14709519] вы таки написали
конкретно неправиъный СКЛ (и по смыслу и коегде просто
забыли поставить ключевые слова, перечитайте что вы написали,
сами легко поймете)
Ну а дальше снежный ком -- вам указывают на ваши ошибки,
а вы переходите на личности.

Такое троление еше куда нишло в ПТ (хотя и там это будет считаться низкопробным).
Но тут то это совершено контр-продуктивно если у вас
задача получить помошь.

Учите СКЛ и проходите с интересными вопросами.
И будем с удовольствием обшатся на нормальном уровне.

Успехов.
...
Рейтинг: 0 / 0
Объединение 2-х таблиц
    #38367021
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftЗакончили, можно удалять?Секундочку... пусть ещё денёк повисит
[offtop]Насчёт "великого и могучего"...
Ja_Kazanovaqwerty112, и в окончание, хотелось бы дополнить сказанное. Для начала выучите Великий и Могучий, научитесь читать и, читая, вникать в смысл прочитанного. Ведя беседу, проникаться уважением к визави, дабы, легче осмыслить услышанное. Впрочем, подозреваю, данное не даст желанных плодов, - напротив, же вызовет агрессию с Вашей стороны. Бесплатный совет,: обратитесь к психологу, наркологу, прочтите букварь, а после - несколько трудов по этикету. У меня всё. Ни пуха)Граммарнаци не просто негодуют, они падают в обморок.
[offtop]
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Объединение 2-х таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]