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.
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);
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)
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
dziekuje za pomoc. Juz mi działa.
http://sqlfiddle.com/#!9/04a21d0/1
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)