Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MySQL - Wyświetlanie różnicy z dwóch tabel
fcppl
post 13.08.2020, 10:04:36
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 11.04.2010

Ostrzeżenie: (0%)
-----


Mam dwie tabele. A i B

Tabela_A

Categori_ID | Category_Name
155 | Nazwa A
145 | Nazwa B

Tabela_B

ID | Title | Link
1 | Nazwa A | index.php?option=com_view=category&category_id=155
2 | Nazwa B | index.php?option=com_view=category&category_id=145
3 | Nazwa E | index.php?option=com_view=category&category_id=175
4 | Nazwa F | index.php?option=com_view=category&category_id=400

Chciałem zrobić tak żeby porównać te dwie tabele na podstawie kolumny Categori_ID i Link i wyświetlić różnice ( te które nie występują z Tabeli B ).
Problem mam taki że nie wiem jak to zrobić żebym mógł wyciągnąć z Tabeli B -> Link ID (to co jest pogrubione bo tam jest zapisane Categori_ID na samym końcu, a wcześniej znajduję się inny tekst).

Wynik powinien być taki że powinienem otrzymać różnicę więc:

3 | Nazwa E | index.php?option=com_view=category&category_id=175
4 | Nazwa F | index.php?option=com_view=category&category_id=400

Dziękuję z góry za pomoc.
Go to the top of the page
+Quote Post
viking
post 13.08.2020, 10:31:19
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1113
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Wersja mini (3 ostatnie znaki zawsze) https://dev.mysql.com/doc/refman/8.0/en/str...#function_right
Wersja full SELECT SUBSTRING_INDEX('index.php?option=com_view=category&category_id=145', '=', -1);

Ten post edytował viking 13.08.2020, 10:45:13


--------------------
Go to the top of the page
+Quote Post
fcppl
post 13.08.2020, 11:10:45
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 11.04.2010

Ostrzeżenie: (0%)
-----


Mogę prosić o przykład zastosowania tej metody: Na ta chwile mam porównanie dwóch tabel i wyświetlanie różnic, ale nie wiem jak zastosować SUBSTRING_INDEX

Moje zapytanie:

SELECT DISTINCT Tabela_B.link , Tabela_B.Title

FROM Tabela_B

WHERE Tabela_B.link NOT IN (SELECT DISTINCT Tabela_A.Categori_ID

FROM Tabela_A)

Ten post edytował fcppl 13.08.2020, 11:13:57
Go to the top of the page
+Quote Post
trueblue
post 13.08.2020, 11:21:33
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Zrób sobie LEFT JOIN na Categori_ID i tym co podał Ci viking,
czyli:
LEFT JOIN ON SUBSTRING_INDEX(Tabela_B.Link, '=', -1)=Tabela_A.Categori_ID
i warunek IS NULL na Tabela_A


--------------------
Go to the top of the page
+Quote Post
fcppl
post 13.08.2020, 11:22:54
Post #5





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 11.04.2010

Ostrzeżenie: (0%)
-----


dziekuje za pomoc. Juz mi działa.
Go to the top of the page
+Quote Post
viking
post 13.08.2020, 11:25:58
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1113
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


http://sqlfiddle.com/#!9/04a21d0/1


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.03.2024 - 09:47