2015-10-30 2 views
2

У меня есть таблица (Employees) A:Скрыть строки в таблице А, которые появляются в таблице B

+----+---------+ 
| ID | NAME | 
+----+---------+ 
| 1 | ROBERT | 
| 2 | JAMES | 
| 3 | RICHARD | 
| 4 | KANYE | 
| 5 | DYLAN | 
| 6 | JOHN | 
| 7 | JEAN | 
| 8 | LOKI | 
| 9 | ADAM | 
+----+---------+ 

И таблица (Сотрудники) B:

+----+---------+ 
| ID | NAME | 
+----+---------+ 
| 1 | ROBERT | 
| 2 | JAMES | 
| 3 | RICHARD | 
| 4 | KANYE | 
| 5 | DYLAN | 
+----+---------+ 

Эти люди мои "сотрудники". Имена из таблицы B - это все сотрудники моей базы данных, а имена из таблицы A - все сотрудники, которых я назначил проекту № 1.

Я хотел бы Скрыть все имена в таблице B, которые уже фигурируют в таблице A, потому что я не хочу переписывать одного и того же сотрудника в проект n ° 1.

Как разрешить это с помощью jQuery?

+0

вы хотите, чтобы быть отсортированы на стороне клиента? – messerbill

+1

Хм, есть ли у вас какие-либо предыдущие попытки поделиться с нами? Я настоятельно рекомендую вам сначала попытаться решить проблему, так как вы узнаете гораздо больше. – Serlite

ответ

0

стороне клиента проверка будет:

function compareLists(listA, listB){ 
var resultList = []; 
    listA.forEach(function(itemA){ 
    listB.forEach(function(itemB){ 
     if (itemB.name !== itemA.name)resultList.push(itemB); 
    } 
    } 
return resultList; 
} 

или на ServerSide (базы данных):

select * from table_b where name not in (select name from table_a) 

приветствия

0

Обычно вы должны сделать это на стороне сервера, используя SQL как уже ответил. Однако, поскольку вы спрашиваете о javascript. Это способ фильтрации его на стороне клиента:

//collect list of names in A 
var table = document.getElementById("TableA"); 
var names = [] 
for (var i = 0, row; row = table.rows[i]; i++) { 
    names.push(row.celss[1]); 
} 
//check names in B 
table = document.getElementById("TableB"); 
for (var i = 0, row; row = table.rows[i]; i++) { 
    if(jQuery.inArray(row.cells[1], names) !== -1){ 
     //show row 
    }else{ 
     //hide row 
    } 
} 
0

Я не так много knowlwdge в Jquery ..

Но этот запрос увеличивает производительность в большой БД.

SELECT 
    FROM TableB 
    LEFT JOIN TableA ON TableB.name=TableA.name // id will be better than name 
    WHERE TableB.name IS NULL 

Надеется, что это помогает

Смежные вопросы