Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из двух таблиц / 7 сообщений из 7, страница 1 из 1
16.04.2015, 18:15:35
    #38938586
Max Egorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из двух таблиц
Здравствуйте.

Думаю, вопрос достаточно простой для опытных людей, но я php-программист, и знания sql у меня ниже среднего. Поэтому обращаюсь к вам за помощью.

Есть две таблицы:

Suppliers ("Организации")
- Id
- PreferedName ("Оф. название организации")

TradingNames (доп. названия организаций)
- Id
- Supplier (ссылка на "Suppliers")
- Value (название)

Проще говоря, есть организации (Suppliers), имеющие официальное название (PreferedName). Но у организаций есть также неофициальные названия (TradingNames), по которым их часто ищут.

Моя задача -- вывести данные из обеих таблиц, причем вот в таком формате:

PreferedName 1
Trading Name
Trading Name
...
Trading Name

PreferedName 2
Trading Name
Trading Name
...
Trading Name

То есть сначала идет название оф. организации №1, затем список неофициальных, затем то же самое для организации №2, и так далее.

Сразу скажу, что делать PreferedName ссылкой на TradingNames не вариант, так как поле часто используется (в отличие от TradingNames), мороки потом много с ним.

Не представляю как это сделать через JOIN LEFT, например, хотя пытался представить. Результат запроса желательно бы иметь в удобном виде для вывода в цикле foreach без дополнительных манипуляций со строками (типа explode).

Не обязательно писать готовый запрос, можно ткнуть меня в раздел документации, где можно найти решение.

Спасибо.
...
Рейтинг: 0 / 0
16.04.2015, 18:57:43
    #38938640
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из двух таблиц
Да нечего тут искать по документации. Логика. Она в голове или работает, или нет.
Код: sql
1.
2.
3.
4.
select 1, Id, PreferedName from Suppliers 
union all
select 2, Supplier, Value  from TradingNames 
order by 2,1
...
Рейтинг: 0 / 0
16.04.2015, 19:25:19
    #38938652
Max Egorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из двух таблиц
Akina, спасибо.

С sql к сожалению знаком плохо. Спасибо за помощь!
...
Рейтинг: 0 / 0
13.05.2015, 09:04:53
    #38957039
vic5757
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из двух таблиц
доброго дня.

подскажите, пожалуйста, запрос для моего случая.

1-я таблица: ID, Name
2-я таблица: Num, id1, id2, c1, c2, ...

во второй таблице id1, id2 - ссылки на 1-ю табл.

как составить запрос, чтоб в результате получить
выборку из 2-й табл, где id1, id2 заменены значениями Name из 1-й табл.
нужны записи a < Num < b (отрезок (a,b))
...
Рейтинг: 0 / 0
13.05.2015, 09:12:22
    #38957043
Выборка из двух таблиц
vic5757,

дважды (с разными алиасами) заджойнить таблицу 1 к таблице 2.
какие сложности-то?
...
Рейтинг: 0 / 0
13.05.2015, 11:27:33
    #38957177
vic5757
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из двух таблиц
Добрый Э - Эх,

select
`t1`.`id`,
`t2`.`name` AS `name1`,
`t3`.`name` AS `name2`
from `data` AS `t1`
join `userdata` AS `t2`
on `t1`.`id1`=`t2`.`id`
join `userdata` AS `t3`
on `t1`.`id2`=`t3`.`id`
where ...;

это понятно.
в "on" верный порядок? или без разницы t1.id=t2.id или t2.id=t1.id ?
...
Рейтинг: 0 / 0
13.05.2015, 11:51:25
    #38957217
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из двух таблиц
vic5757в "on" верный порядок? или без разницы t1.id=t2.id или t2.id=t1.id ?
операция сравнения в MySQL коммутативна.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из двух таблиц / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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