sql - возвращает значения из столбца с несколькими идентификаторами, относящимися к другой таблице [duplicate]

(Исходный ответ от 10 января 2011 г.)

Я думаю, что нашел ответ: Проблема GCC: использование члена базового класса, который зависит от аргумент шаблона . Ответ не определен для gcc.


Обновление: в ответ на комментарий mmichael из проекта N3337 стандарта C ++ 11:

14.6.2 Зависимые имена [temp.dep] [...] 3 В определении шаблона класса или класса, если базовый класс зависит от параметра-шаблона, область базового класса не рассматривается во время неквалифицированных поиск имени в точке определения шаблона или члена класса или во время создания шаблона или члена класса.

blockquote>

Является ли «потому что стандарт говорит так» считается ответом, я не знаю. Теперь мы можем спросить, почему стандарт указывает, что, как замечательный ответ Стив Джессоп и другие, ответ на этот последний вопрос довольно длинный и спорный. К сожалению, когда дело доходит до стандарта C ++, часто почти невозможно дать краткое и самодостаточное объяснение того, почему стандарт требует чего-то; это относится и к последнему вопросу.

0
задан Johan Fourie 24 November 2015 в 16:03
поделиться

1 ответ

Прежде всего, вы должны нормализовать свою структуру данных и иметь таблицу соединений между ключами2 и таблицей обучения.

Чтобы заставить соединение работать с текущей структурой данных, используйте mysql find_in_set () :

SELECT *
FROM education AS a
JOIN keys2 AS b on find_in_set(b.`List Idsubjek`,a.`List Idsubjek`)>0 
WHERE b.`List Idsubjek` IN (52, 54, 55, 67)
AND `studentid` = '$id'
1
ответ дан Shadow 18 August 2018 в 11:29
поделиться
  • 1
    MySQL сказал: Документация # 1052 - Колонка «Список Idsubjek» в том, где предложение неоднозначно – Johan Fourie 24 November 2015 в 16:25
  • 2
    Просто добавьте ссылку на таблицу в предложение where. ГДЕ b. List Idsubjek IN (52, 54, 55, 67) – Robbert 24 November 2015 в 17:00
  • 3
    Предложение WHERE обязательно избыточно, если использовать find_in_set в JOIN. Он думает, что здесь возникает путаница, поскольку он говорит, что он ХОЧЕТ показать географию, но она не будет отображаться с условием List Idsubjek IN (52, 54, 55, 67). Нормализация помогает, поскольку find_in_set не совсем эффективен. – anothershrubery 24 November 2015 в 17:32
  • 4
    @JohanFourie поместил таблицу в критерии, но вы могли бы сделать это сами. – Shadow 24 November 2015 в 19:26
  • 5
    @anothershrubery Я полностью согласен, это не самое эффективное решение, и я указал это на первое предложение моего ответа. – Shadow 24 November 2015 в 19:27
Другие вопросы по тегам:

Похожие вопросы: