Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Bazy danych _ MySQL - Wyświetlanie różnicy z dwóch tabel

Napisany przez: fcppl 13.08.2020, 10:04:36

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.

Napisany przez: viking 13.08.2020, 10:31:19

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

Napisany przez: fcppl 13.08.2020, 11:10:45

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)

Napisany przez: trueblue 13.08.2020, 11:21:33

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

Napisany przez: fcppl 13.08.2020, 11:22:54

dziekuje za pomoc. Juz mi działa.

Napisany przez: viking 13.08.2020, 11:25:58

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)