Przecięcie w MySQL
Mam dwie tabele, rekordy i dane. rekordy mają wiele pól (imię, nazwisko itp.). Każde z tych pól jest obcym kluczem do tabeli danych, która przechowuje rzeczywistą wartość. Muszę przeszukiwać wiele pól rekordów.
Poniżej znajduje się przykładowe zapytanie używające INTERSECT, ale potrzebuję takiego, które działa w MySQL.
SELECT records.id FROM records, data WHERE data.id = records.firstname AND data.value = "john"
INTERSECT
SELECT records.id FROM records, data WHERE data.id = records.lastname AND data.value = "smith"
Dzięki za wszelką pomoc.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
6 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Jedną z wielu innych alternatyw jest sugestia :
Anonimowy użytkownik
Potwierdzenie od:
Wszystko, co robisz, to „UNION ALL” przy każdym zapytaniu, które chcesz przejść, i sprawdzanie, które z nich otrzymasz za każdym razem.
Tak więc, jeśli otrzymamy ten sam rekord w obu żądaniach, liczba będzie wynosić 2, a końcowe żądanie pakowania będzie to obejmować.
Anonimowy użytkownik
Potwierdzenie od:
Oto kilka danych testowych:
Spodziewany wynik:
Dane testowe prawdopodobnie nie są przydatne w przypadku plakatu, ale mogą być przydatne dla wyborców, którzy chcą przetestować rozwiązania, aby upewnić się, że działają one poprawnie, lub dla osób, które chcą przesłać odpowiedzi, aby przetestować własne odpowiedzi.
Anonimowy użytkownik
Potwierdzenie od:
https://dev.mysql.com/doc/refm ... .html
Anonimowy użytkownik
Potwierdzenie od:
Lub specjalnie dla twojego przypadku:
Anonimowy użytkownik
Potwierdzenie od:
inner join
i
in
... To jest rozwiązanie z
w
: