Допустим, что у меня есть таблица Table1 (id INT, текст, b текст, c текст) и Table2 (id INT, текст строки0, текст строки1, текст строки2). У меня есть некоторые данные в таблице 1, и я переношу их в Таблицу 2 (id-> id, a-> row0, b-> row1, c-> row2). Теперь я хочу проверить, все ли данные перенесены, и если все поля ОК. Я использую этот выбор, чтобы найти значения Id, которые являются неправильными, но я не знаю, как оптимальный способ узнать, какие столбцы не подходят, например, у меня есть запись Table1 (1, hel, l о) и запись Table2 (1, он пустой, о) Я хотел бы знать, что столбцы а/row0 и б/row1 неверныПолучите разные столбцы в MySQL
SELECT Table1.id, Table2.id FROM Table1 INNER JOIN Table2 ON Table1.id = Table2.id WHERE
Table1.a != Table2.row0 OR
(Table1.a NOT NULL AND BI_EN.contract.Table2.row0 IS NULL) OR
(Table1.a IS NULL AND BI_EN.contract.Table2.row0 IS NOT NULL) OR
Table1.b != Table2.row1 OR
(Table1.b NOT NULL AND BI_EN.contract.Table2.row1 IS NULL) OR
(Table1.b IS NULL AND BI_EN.contract.Table2.row1 IS NOT NULL) OR
Table1.c != Table2.row2 OR
(Table1.c NOT NULL AND BI_EN.contract.Table2.row2 IS NULL) OR
(Table1.c IS NULL AND BI_EN.contract.Table2.row2 IS NOT NULL)
Этот код не работает должным образом, потому что он дает мне все столбцы, а не только те, которые не совпадают, и вот что я не знаю, как получить –
, ваш исходный запрос состоял в том, чтобы получить только 'id'. вы не можете получить разное количество столбцов при выполнении sql-запроса. любой запрос всегда возвращает одинаковое количество столбцов. поэтому, если вам нужен только идентификатор записи, вы можете удалить другие поля из части «SELECT». – Alex