я следующие таблицы (только перечислены необходимые атрибуты)SQL запросов для точного соответствия во многих ко многим отношению
- медицины (идентификатор, имя),
- родовое (идентификатор, имя),
- med_gen (med_id ссылки медицина (ID), GEN_ID ссылки родовое (ID), потенция)
Примеры данных
медицина
- (1, 'Кроцин')
- (2, 'Stamlo')
- (3, 'NT Куф')
родовое
- (1, «Гексахлордин»)
- (2, 'Метилбензоат)
med_gen
- (1, 1, '100мг')
- (1, 2, '50 мл')
- (2, 1, '100мг')
- (2, 2, '60мл')
- (3, 1, '100мг')
- (3, 2, '50мл')
Я хочу, чтобы все лекарства, которые эквивалентны данной мед icine. Эти лекарства эквивалентны друг другу, которые имеют такую же общую и такую же эффективность. В приведенных выше данных выборки все три имеют одинаковые дженерики, но только 1 и три также имеют одинаковые потенции для соответствующих дженериков. Итак, 1 и 3 являются эквивалентными лекарствами.
Я хочу найти эквивалентные лекарства, учитывая лекарственный идентификатор.
ПРИМЕЧАНИЕ. В одном лекарстве может быть любое количество дженериков. Стол медицина имеет около 102 000 записей, общий стол около 2200 и таблицу работоспособности около 200000 записей. Таким образом, производительность - ключевой момент.
ПРИМЕЧАНИЕ 2. База данных, используемая в MySQL.
Вы говорите, что вы не хотите включают 2, хотя они имеют одинаковые генераторы, а «гексахлородин» даже имеет такую же потенцию, поскольку общий «метилбензоат» имеет различную активность? – Steve
@Steve Да. Потому что два лекарства будут эквивалентны только тогда, когда они совпадают с точными одинаковыми дженериками и одинаковой эффективностью. – vagabondtechie