Добрый день, вы все! Не могли бы вы помочь мне? :)SQL-строки выбора с одинаковым значением столбца
DATABASE SAMPLE:
ID Catalog Code Description Type Supplier Supplier Code
1 6083 TV LG 32 tv lg ud28f1137ka-ga-i2-tr
1 6083 TV LG 32 tv samsung asfb1145-ssd # select it
2 6129 Phone 5X phone apple mics_rp
2 6129 Phone 5X phone htc nco_p13 961-x
2 6129 Phone 5X phone nokia n_41s
3 6210 Friezer agd samsung asfb1145-ssd # found match
it has the same
`Supplier Code`
выше ID
присваивается Catalog Code
. Все поля - VARCHAR
, за исключением ID
. Может быть пустым.
ЧТО Я ХОТЕЛ СДЕЛАТЬ:
Выберите Catalog Code = 6083
например и получить все другие Catalog Codes
IF один из Supplier Codes
то же самое.
Итак, я должен получить: Catalog Code = 6210
(последний ряд), потому что он имеет те же Supplier Code
, что и 6083
(первая строка).
МОЯ ПОПЫТКА НИЗКАЯ:
SELECT a.*
FROM `TABLE` a
WHERE EXISTS
(SELECT 1
FROM `TABLE` b
WHERE b.`Catalog Code` = '6083'
AND (
a.`Supplier Code` NOT IN ('')
AND a.`Supplier Code` IN b.`Supplier Code`
)
)
НЕОБХОДИМОСТЬ УЛУЧШЕНИЕ КОНСТРУКЦИИ
Моя настоящая БД имеет более 100 000 строк. Я чувствую, что дизайн БД нуждается в улучшении, но какие?
INDEXES
, PRIMARY KEY
, вторая БД с FOREIGN KEY
?
Когда в каком столбце (столбцах) появляется 0, а когда появляется «?» В каком столбце (столбцах)? Всегда ли отображается идентификатор с тем же кодом? Всегда ли код всегда отображается с одним и тем же идентификатором? Ваш вопрос непонятен. Вы также используете «db», когда имеете в виду «таблицу». – philipxy