Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка значений из одной таблицы на основании данных из другой / 18 сообщений из 18, страница 1 из 1
03.09.2014, 10:58:42
    #38735849
ShutTap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
Здравствуйте.
Есть две таблицы, Т1 и Т2
параметры у них Т1-ID, Т1-ID2... и Т2-ID, Т2-ИМЯ... и тд
Можно ли одним запросом получить такие данные:
чтобы получать из первой таблицы все поля в строке, но с заменой ID2 на имя этого поля, взятое из второй таблицы?
(типа ID2=ID)
...
Рейтинг: 0 / 0
03.09.2014, 11:00:22
    #38735853
ShutTap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
(Т1-ID2=T2-ID)
...
Рейтинг: 0 / 0
03.09.2014, 11:14:16
    #38735879
ShutTap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
что, здесь редактировать никак нельзя?
все поля из ОПРЕДЕЛЕННОЙ строки.
то есть, не совсем понял, как совместить условие для JOIN, что T1.ID2=T2.ID и условие выбора строки из первой таблицы, допустим, что T1.ID=3...

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
"SELECT 
T1.id as id,
T2.name as name
FROM T1 JOIN T2
ON T1.id2=T2.id
WHERE T1.id=3
ORDER BY T1.id ASC
"


как-то не фурычит... подскажите пожалуйста?
...
Рейтинг: 0 / 0
03.09.2014, 11:21:45
    #38735898
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
ShutTapкак-то не фурычита что именно "не фурычит"? с виду всё правильно.
...
Рейтинг: 0 / 0
03.09.2014, 11:54:37
    #38735986
ShutTap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
не заменяет. он ищет где такое есть совпадение, а поля не заменяет.
а еще следующий шаг мне надо сделать несколько замен, как там быть? при том, что разные поля в первой таблице сравниваются с одним и тем же во второй.
т.е. в первой поля id2, id3, id4 допустим, а имена все во второй в name, по id просто в разных строках содержаться
то есть, замениться id2 должен на name, где T1.id2=T2.id
то есть, замениться id3 должен на name, где T1.id3=T2.id
то есть, замениться id4 должен на name, где T1.id4=T2.id
как в этом случае поступить? не понимаю..
...
Рейтинг: 0 / 0
03.09.2014, 12:00:51
    #38736000
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
ShutTapон ищет где такое есть совпадение, а поля не заменяетЧто значит "не заменяет"? Вот у себя проверил:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create table t1(id int, id2 int);
create table t2(id int, name varchar(50));
insert into t1 values (3,1);
insert into t2 values (1,'qweasd');
SELECT 
T1.id as id,
T2.name as name
FROM T1 JOIN T2
ON T1.id2=T2.id
WHERE T1.id=3
ORDER BY T1.id ASC;
результат:idname3qweasdВсё как надо "заменяет".
...
Рейтинг: 0 / 0
03.09.2014, 14:40:32
    #38736252
ShutTap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
да, работает, действительно, одну кавычку пропустил. а как с этим быть:
ShutTapа еще следующий шаг мне надо сделать несколько замен, как там быть? при том, что разные поля в первой таблице сравниваются с одним и тем же во второй.
т.е. в первой поля id2, id3, id4 допустим, а имена все во второй в name, по id просто в разных строках содержаться
то есть, замениться id2 должен на name, где T1.id2=T2.id
то есть, замениться id3 должен на name, где T1.id3=T2.id
то есть, замениться id4 должен на name, где T1.id4=T2.id
как в этом случае поступить? не понимаю..
??
...
Рейтинг: 0 / 0
03.09.2014, 16:17:21
    #38736500
ShutTap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
как брать разные значения из одного и того же столбца другой таблицы, только разных строк?
общая суть, что нужно вывести все поля из таблицы, в которой часть столбцов - id из другой таблицы, при чем несколько столбцов ссылаются на разные id но из одного столбца как бы. нужно вывести с заменой по этим самым id.
для случая, когда замена только одна, или много но из разных столбцов - вопросов нет. а как из одного столбца но разных строк - вопрос..
...
Рейтинг: 0 / 0
04.09.2014, 05:12:31
    #38736982
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
Если исходить из
ShutTapто есть, замениться id2 должен на name, где T1.id2=T2.id
то есть, замениться id3 должен на name, где T1.id3=T2.id
то есть, замениться id4 должен на name, где T1.id4=T2.id, то
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT 
T1.id as id,
T2.name as name
FROM T1 
JOIN T2 q2 ON T1.id2=q2.id
JOIN T2 q3 ON T1.id3=q3.id
<...>
JOIN T2 qN ON T1.idN=qN.id
WHERE T1.id=3
ORDER BY T1.id ASC;

Это, естественно, в предположении, что ид в таблице 2 уникальны.

Если я не угадал, чего вы хотите, то показывайте по 2-3 исходных записи из каждой таблицы и какой должен быть результат, а то ваше объяснение "на словах" какое-то мутноватое.
...
Рейтинг: 0 / 0
04.09.2014, 08:17:38
    #38737035
ShutTap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
Нет нет, вы все правильно поняли. Спасибо!
qN это как бы копия таблицы? а можно как-то сделать так, чтобы не вручную прописывать JOIN T2 q3 ON T1.id3=q3.id, т.к. заранее не инзвестно количество столбцов? что-то вроде шаблона...
Пока это то, что нужно, и запросы JOIN T2 qN ON T1.idN=qN.id заношу циклом...
...
Рейтинг: 0 / 0
04.09.2014, 08:29:47
    #38737040
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
ShutTapа можно как-то сделать так, чтобы не вручную прописывать JOIN T2 q3 ON T1.id3=q3.id, т.к. заранее не инзвестно количество столбцов? что-то вроде шаблонанет
судя по постановке задачи, вам стоит пересмотреть структуру вашей БД
...
Рейтинг: 0 / 0
04.09.2014, 09:14:40
    #38737062
ShutTap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
к сожалению это БД JoomShopping

вот такой запрос формируется, визуально вроде все норм, но выдает ошибку синтаксиса
Код: php
1.
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''product_attr_id' AS 'product_attr_id', `jona_jshopping_products_attr`.'product_' at line 2



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT 
`jona_jshopping_products_attr`.'product_attr_id' AS 'product_attr_id',
`jona_jshopping_products_attr`.'product_id' AS 'product_id', 
`jona_jshopping_products_attr`.'buy_price' AS 'buy_price', 
`jona_jshopping_products_attr`.'price' AS 'price', 
`jona_jshopping_products_attr`.'old_price' AS 'old_price', 
`jona_jshopping_products_attr`.'count' AS 'count', 
`jona_jshopping_products_attr`.'ean' AS 'ean', 
`jona_jshopping_products_attr`.'weight' AS 'weight', 
`jona_jshopping_products_attr`.'weight_volume_units' AS 'weight_volume_units', 
`jona_jshopping_products_attr`.'ext_attribute_product_id' AS 'ext_attribute_product_id', 
`jona_jshopping_attr_values`.'name_ru-RU' AS 'name' 
FROM `jona_jshopping_products_attr` 
JOIN `jona_jshopping_attr_values` q3 ON `jona_jshopping_products_attr`.attr_3=q3.value_id 
JOIN `jona_jshopping_attr_values` q4 ON `jona_jshopping_products_attr`.attr_4=q4.value_id 
WHERE `jona_jshopping_products_attr`.product_id='1' 
ORDER BY `jona_jshopping_products_attr`.attr_order ASC
...
Рейтинг: 0 / 0
04.09.2014, 10:31:19
    #38737176
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
ShutTap,

даже по раскраске синтаксиса на форуме видно, что кавычки не те.
...
Рейтинг: 0 / 0
04.09.2014, 11:18:50
    #38737234
ShutTap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
я хз, что значит раскраска)
а какие нужны? всегда писал такие, раньше работало...
...
Рейтинг: 0 / 0
04.09.2014, 11:36:05
    #38737256
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
ShutTapя хз, что значит раскраска)а глазами посмотреть на свой же пост с кодом (и головой при этом подумать) не пробовали?
ShutTapвсегда писал такие, раньше работалораньше были не такие, "'" и "`" просто очень похожи на вид
...
Рейтинг: 0 / 0
04.09.2014, 11:57:43
    #38737287
ShutTap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
прошу прощения...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT 
`jona_jshopping_products_attr`.`product_attr_id` AS 'product_attr_id',
`jona_jshopping_products_attr`.`product_id` AS 'product_id', 
`jona_jshopping_products_attr`.`buy_price` AS 'buy_price', 
`jona_jshopping_products_attr`.`price` AS 'price', 
`jona_jshopping_products_attr`.`old_price` AS 'old_price', 
`jona_jshopping_products_attr`.`count` AS 'count', 
`jona_jshopping_products_attr`.`ean` AS 'ean', 
`jona_jshopping_products_attr`.`weight` AS 'weight', 
`jona_jshopping_products_attr`.`weight_volume_units` AS 'weight_volume_units', 
`jona_jshopping_products_attr`.`ext_attribute_product_id` AS 'ext_attribute_product_id', 
`jona_jshopping_attr_values`.`name_ru-RU` AS 'name' 
FROM `jona_jshopping_products_attr` 
JOIN `jona_jshopping_attr_values` q3 ON `jona_jshopping_products_attr`.attr_3=q3.value_id 
JOIN `jona_jshopping_attr_values` q4 ON `jona_jshopping_products_attr`.attr_4=q4.value_id 
WHERE `jona_jshopping_products_attr`.product_id=`1` 
ORDER BY `jona_jshopping_products_attr`.attr_order ASC



такая ошибка
Код: php
1.
#1054 - Unknown column 'jona_jshopping_attr_values.'name_ru-RU'' in 'field list'


но name_ru-RU точно есть в этой таблице...
...
Рейтинг: 0 / 0
04.09.2014, 12:06:05
    #38737303
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
не jona_jshopping_attr_values, а ку3 (или ку4)
...
Рейтинг: 0 / 0
04.09.2014, 12:19:20
    #38737322
ShutTap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы на основании данных из другой
аа, тут тоже заменять. теперь все понятно, спасибо большущее)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка значений из одной таблицы на основании данных из другой / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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