Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: IN в JOIN

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
cac95
Отправлено: 27 Декабря, 2013 - 16:03:11
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Скажите, пожалуйста, можно ли так делать?

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `awards_year_n` JOIN `name` ON (`name_id` IN `awards_name`) WHERE `awards_year_n_a` = :id


То есть использовать выборку по IN в JOIN.
Если да, то почему-то не работает Недовольство, огорчение
 
 Top
eai
Отправлено: 27 Декабря, 2013 - 16:17:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Структуру таблиц в студию

P.S. Сдается мне что IN тут не нужен

(Отредактировано автором: 27 Декабря, 2013 - 16:18:29)

 
 Top
cac95
Отправлено: 27 Декабря, 2013 - 16:24:28
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Извините саму структуру из mysql admin пока взять не могу (временно серв лежит). Опишу так.

Есть таблица с исполнителями `name`:
name_id - ид
name_name - имя

Есть таблица с наградами `awards_year_n`:
awards_id - ид
adwards_name - здесь иды тех кто номинирован.

Как-бы так.
 
 Top
eai
Отправлено: 27 Декабря, 2013 - 16:26:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




cac95 пишет:
Извините саму структуру из mysql admin пока взять не могу (временно серв лежит). Опишу так.

Есть таблица с исполнителями `name`:
name_id - ид
name_name - имя

Есть таблица с наградами `awards_year_n`:
awards_id - ид
adwards_name - здесь иды тех кто номинирован.

Как-бы так.


Тады просто ON adwards_name = name_id

Не нужен тут никакой IN
 
 Top
cac95
Отправлено: 27 Декабря, 2013 - 16:27:38
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




eai пишет:
cac95 пишет:
Извините саму структуру из mysql admin пока взять не могу (временно серв лежит). Опишу так.

Есть таблица с исполнителями `name`:
name_id - ид
name_name - имя

Есть таблица с наградами `awards_year_n`:
awards_id - ид
adwards_name - здесь иды тех кто номинирован.

Как-бы так.


Тады просто ON adwards_name = name_id

Не нужен тут никакой IN



Ну дык в adwards_name может быть несколько исполнителей.
 
 Top
eai
Отправлено: 27 Декабря, 2013 - 16:35:04
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




cac95 пишет:

Ну дык в adwards_name может быть несколько исполнителей.


Если к примеру разделитель там ';' между IDшниками и после последнего есть ";" и первый символ в поле тоже ";"
То можно вот так вот

ON adwards_name LIKE "%;" + name_id +";%"

Но вообще это ботва, нельзя такую структуру организоввывать, надо бы еще таблицу

(Отредактировано автором: 27 Декабря, 2013 - 16:35:26)

 
 Top
cac95
Отправлено: 27 Декабря, 2013 - 16:37:39
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




eai пишет:
Но вообще это ботва, нельзя такую структуру организоввывать, надо бы еще таблицу


Согласен. Но, увы, по другому я не знаю как сделать.
Был один рабочий вариант, но около 20-30 запросов на страницу получалось.
Сейчас думаю может в файлах это сделать (txt)...

А какую можно ещё одну таблицу (с чем)?
 
 Top
eai
Отправлено: 27 Декабря, 2013 - 16:38:54
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Еще вариант без первого и последнего ";"

ON adwards_name LIKE "%;" + name_id +";%" OR adwards_name = name_id OR adwards_name LIKE name_id +";%" OR adwards_name LIKE "%;" + name_id
(Добавление)
[quote=cac95]
eai пишет:

А какую можно ещё одну таблицу (с чем)?


Таблица о двух полях позволяющая реализовать в реляционной структуре соотношение много ко многим, а именно много победителей в одном конкурсе и много конкурсов у одного победителя.

name_id awards_id

(Отредактировано автором: 27 Декабря, 2013 - 16:39:19)

 
 Top
cac95
Отправлено: 27 Декабря, 2013 - 16:45:07
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




[quote=eai]Еще вариант без первого и последнего ";"

ON adwards_name LIKE "%;" + name_id +";%" OR adwards_name = name_id OR adwards_name LIKE name_id +";%" OR adwards_name LIKE "%;" + name_id
(Добавление)
cac95 пишет:
eai пишет:

А какую можно ещё одну таблицу (с чем)?


Таблица о двух полях позволяющая реализовать в реляционной структуре соотношение много ко многим, а именно много победителей в одном конкурсе и много конкурсов у одного победителя.

name_id awards_id


Если я правильно понимаю, то так будет на много лучше. Буду пробовать так.
 
 Top
eai
Отправлено: 27 Декабря, 2013 - 17:15:39
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




cac95 пишет:

Если я правильно понимаю, то так будет на много лучше. Буду пробовать так.


Так будет так как завещали отцы основатели реляционных баз данных Улыбка)))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB