Есть ли способ найти ячейку, которая не существует в другой таблице?

#sql #string #contains #string-concatenation

#sql #строка #содержит #конкатенация строк

Вопрос:

лай

Я ищу способ отфильтровать все «уже принятые» слова внутри списка, причем взятые слова взяты из другого списка.

Например:

 dog,cat,fish 
wolf,elephant

the list:
dog, cat, fish, wolf, elephant, tiger, bird.
  

Теперь я хочу выбрать только «tiger» и «bird».

Обратите внимание: Dog, cat,fish объединены и представляют собой 1 строку внутри 1 столбца строки.

Комментарии:

1. Если бы ваши данные были нормализованы, это было бы простой задачей…

2. К сожалению, я не знаю, что это значит, если бы у вас был пример, я мог бы попытаться изменить свою таблицу?

3. Хранение списка значений, разделенных запятыми, в столбце в реляционной базе данных почти всегда является признаком плохого дизайна базы данных. Приведение такой таблицы к первой нормальной форме значительно упростит работу с таблицей.

Ответ №1:

измените таблицу так, чтобы в ней содержался только один элемент в заданной строке: например

 animal
------------
id
name
  

затем заполните значения следующим образом:

 1, 'Fish'
2, 'Bird'
3, 'Dog'
  

и т.д.

тогда вам нужно представление о «списке», может быть, так:

 my_list
----------
list_id
animal_id
  

Комментарии:

1. Я понимаю это, но, к сожалению, моя задача на самом деле не позволяет этого. Нам нужно случайное количество ингредиентов для каждого рецепта, каждый ингредиент должен быть в одном столбце / строке, потому что я не знаю, как заполнить случайное количество столбцов в строке для каждого рецепта.

2. Я добавил картинку, чтобы показать, как выглядит текущая таблица, если у вас есть идея получше вытащить случайное количество строк из столбца внутри другой таблицы и вставить их в эту таблицу для дальнейшего редактирования