Отсяване на дублиращи се записи в MySQL

Fozzy

Well-Known Member
Здравейте! В момента си правя превод на една система и имам малък проблем. Тя записва всичко в mysql база данни. Намерих БГ език, но той е за по-стара версия и доста от записите ги няма. За да ги добавя ръчно ще ми отнеме поне месец. Та, има ли как да ги отсея. Структурата е следната:

id
lang - bulgarian, english
main - това е полето, по което искам да отсея
descr - превода

Тоест, има ли как да видя кои полета от английската секция main липсват в българската?

Надявам се сте ме разбрали, че обяснявам като индианец малко.

Поздрави!
 
От: Отсяване на дублиращи се записи в MySQL

Не знам дали съм те разбрал, но ако е това което си мисля : SELECT DISTINCT main FROM table; трябва да ти върне всички уникални полета по веднъж без повторенията им.
 
PHP:
select * from the_table where lang = 'english' and main not in(
    select main from the_table where lang = 'bulgarian'
);
 
От: Отсяване на дублиращи се записи в MySQL

Абе аз най-накрая съм си на моя компютър и викам да пробвам, но нещо не се получава. Васко, твоя вариант ми връща 0 редове, докато на npocTak работи, но ми извежда само полето main, по което сортирам, а на мен ми трябва да се изведат всичките.
 
Начи ако таблицата е както я описваш (и аз съм разбрал правилно :)) ще имаш вътре нещо такова:

id | lang | main | descr
1 | english | test | test description
2 | bulgarian | test | тестово описание
3 | english | test1 | test1 description

Та ако е така, моята заявка би трябвало да върне реда test1, защото го има само за english. Aко няма липстващи - няма да върне нищо. А иначе тази с distinct-a може да я промениш така: SELECT * FROM table GROUP BY main и ще върне всички.
 

Горе