Выберите с помощью как LIKE Operator, в дизайне базы данных многие ко многим - PullRequest
0 голосов
/ 30 июля 2011

Мне нужна помощь с выбором, но прежде чем задать вопрос, я дам краткое описание того, как работает моя система:

таблиц, которые я хочу сделать, имеет отношение многие ко многим, смотрите ниже:

table product:
prd_cod(pk) //stores the product code ex: 0,1,2
cat_cod(fk) 
prd_name    //stores the product name, ex: tv, gps, notebook

table description_characteristc:
prd_cod(fk) 
id_characteristic(fk)
description //stores the description of the characteristic, ex: sony, 1kg, hj10

table characteristic:
id_characteristic (pk)
name_characteristic //store the name of characteristic, ex: brand, weight, model

Я сделал готовый в index.php, jquery с предложением, чтобы каждое набираемое мной слово вызывало php-файл, который делает выбор и возвращает результат, предел 10, но это говорит о том, что я получил готовый в Интернет, поэтому его выбор не соответствует моему бизнес-правилу, однако я хотел бы внедрить новый выбор для этого предложения.

выборка со значением '%' должна принести в поле подсказки имя prd_name и все описание таблицы description_characteristc. когда пользователь нажимает на результат будет отправлен по параметру в другой .php, но это мне сейчас не нужно,

когда пользователь наберет 'tv', выбор принесет результат:

tv 
tv led
tv plasm
tv samsumg

и когда пользователь введет 'tv s', выборка принесет результат:

tv sony
tv samsumg
tv salom
tv sxxxx etc

помня, что prd_name хранит только 'tv'

1 Ответ

0 голосов
/ 30 июля 2011

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

Примечание: этот запрос может быть не особенно эффективным.

select p.prd_name, d.description
from product p
    inner join description_characteristc d using (prd_cod)

where _user_input_ like concat(p.prd_name, '%')
  and concat(p.prd_name, ' ', d.description) like concat(_user_input_, '%');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...