Mam dwie tabeleParse w MySQL za pomocą przecinka jako separatora
tabela1 z listą użytkowników oddzielonych przecinkami
Name UserID
abc A,B,C,D
def A,B,C
Tabela 2
Name UserID
abc A
abc B
abc C
def A
def B
muszę znaleźć użytkowników, którzy w tabela1 dla każdej nazwy, ale nie w tabeli 2 (Nie będzie nigdy przypadku, gdy para ID użytkownika jest obecna w tabeli 2, ale nie w tabeli 1 jako CSV).
Wyjście powinno być
Name UserID
abc D
def C
mogę to zrobić z PHP, ale czy istnieje sposób można to zrobić za pomocą kwerendy? Nie jestem pewien, od czego zacząć w przypadku, gdy robię to jako zapytanie. Czy mogę analizować w MySQL używając przecinka jako ogranicznika?
'Muszę znaleźć użytkowników, którzy są w tabeli1 dla ** każdej nazwy **, ale nie w tabeli2'. Ale 'D' w tabeli1 nie jest w ** każdej nazwie **. 'D' jest tylko w' abc'. W takim razie, w jaki sposób powstaje pożądany efekt? – hims056
Co mam na myśli, to każda nazwa UserID pair .. – Ank
Masz denormalizowane dane w bazie danych. Polecam ci wykonanie skryptu PHP w celu normalizacji danych i zapisanie wyników w znormalizowanym dla twojej bazy danych. W ten sposób to konkretne zapytanie i wszystkie przyszłe zapytania będą znacznie prostsze. Ogólnie dobrze jest unikać wartości rozdzielanych przecinkami przechowywanych w polach bazy danych. Przeczytaj więcej na temat normalizacji baz danych tutaj: http://databases.about.com/od/specificproducts/a/normalization.htm –