MySQL. Сравнить два столбца из двух разных таблиц, но отобразить только отличающиеся

126
15 октября 2019, 16:40

Необходимо сравнить два столбца из двух разных таблиц, но отобразить только отличающиеся.

Таблицы вида products
N   name    stock
1   Иван    200
2   Федор   300
3   Илья    400
4   Анна    500
5   Петр    600

и

products2
N   name    stock
1   Иван    200
2   Федор   300
3   Илья    000
4   Анна    1000
5   Петр    600

Делаю такой запрос

SELECT stock FROM products2 WHERE stock IN (SELECT stock FROM products)

Выводит совпадающие

1   Иван    200
2   Федор   300
5   Петр    600

Но мне надо, что бы отобразились отличия

3   Илья    000
4   Анна    1000

Помогите, не понимаю как сделать….

Answer 1

Допустим, что N и name должны быть равны, и нужно вывести те записи, где stock отличается.

SELECT t2.*
FROM products t1, products2 t2
WHERE t1.N=t2.N
  AND t1.name=t2.name
  AND t1.stock!=t2.stock
Answer 2

Вывод записей из таблицы products2, для которых нет либо соответствующих записей в products (поле: id) или запись такая есть, но значение поля stock отличается:

SELECT p2.* FROM `products2` `p2`
LEFT JOIN `products` AS `p1` ON p2.id=p1.id AND p2.stock=p1.stock
WHERE p1.id IS NULL

Demo

Answer 3

Нужно писать (NOT IN) а не (IN)

SELECT stock FROM products2 WHERE stock NOT IN (SELECT stock FROM products)

DEMO

READ ALSO
Как сделать чтоб страница с диалогом автоматически обновлялась (php)

Как сделать чтоб страница с диалогом автоматически обновлялась (php)

Как так сделать? Я делаю систему диалогов пользователейИ мне нужно чтоб когда один человек отправлял сообщение у друго-го оно появляясь без...

96
require_once php 7

require_once php 7

ЗдраствуйтеНаписал CMS

133
аналог функции шифрования php по ключу на js

аналог функции шифрования php по ключу на js

есть у меня 2 функции шифровки и дешифровки по указанному ключу на php:

111
Null значение при работе с API Яндекс.Директ

Null значение при работе с API Яндекс.Директ

Я пытаюсь получить данные через API ЯндексДиректа (https://api

113