Как удалить совпадающие строки из результата соединения MySQL и показать несовпадающие строки?

0

Есть ли способ удалить совпадающие строки из MySQL, связанные с Query. На самом деле у меня есть две таблицы, где я храню pub_id, а post_id в обеих таблицах - общие. Я хочу получить результат, когда я запрашиваю все соответствующие строки из таблицы1, а таблица2 не должна быть указана, а строки, не соответствующие совпадению, должны быть перечислены только.

Теги:
join

2 ответа

1
Лучший ответ

Строки возврата запроса, которые существуют только в одной из двух таблиц:

SELECT *
FROM Table1 t1
WHERE NOT EXISTS (Select 1 from Table2 t2 
                 Where t1.pub_id = t2.pub_id
                AND t1.post_Id = t2.post_id)
UNION ALL
SELECT *
FROM Table2 t1
WHERE NOT EXISTS (Select 1 from Table1 t2 
                 Where t1.pub_id = t2.pub_id
                AND t1.post_Id = t2.post_id)
0

вам нужно что-то вроде этого:

    SELECT * FROM tablea AS a
   RIGHT  JOIN tableb AS o ON a.id = o.id WHERE a.pub_id IS NULL and a.post_id is null 
UNION    
SELECT * FROM tablea AS a
   LEFT  JOIN tableb AS o ON a.id = o.id WHERE o.pub_id IS NULL and o.post_id is null 
  • 0
    Я выполняю этот запрос, но он не возвращает точный результат SELECT ID как postlist ОТ wp_posts как posta ГДЕ НЕ СУЩЕСТВУЕТ (SELECT * FROM wp_publication_posts как pub WHERE pub.publication_id = posta.ID и pub.post_id = posta.ID)
  • 0
    я обновляю запрос, что вы ошибаетесь?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню