У меня есть 5 соединенных таблиц следующим образом:
SELECT `t1`.`name` as 't1 name',
`t2`.`name` as 't2 name',
`t3`.`name` as 't3 name',
`t4`.`name` as 't4 name',
`t5`.`name` as 't5 name'
FROM `myscheme`.`t1`
JOIN `myscheme`.`t2`
ON `t1`.`code`= `t2`.`code`
JOIN `myscheme`.`t3`
ON `t2`.`code`= `t3`.`code`
JOIN `myscheme`.`t4`
ON `t3`.`code`= `t4`.`code`
JOIN `myscheme`.`t5`
ON `t4`.`code`= `t5`.`code`;
Я хочу добавить предложение WHERE, которое говорит следующее: Не все поля version
в 5 таблицах (t1.version
, * 1006)*, t3.version
, t4.version
и t5.version
) начинаются с '55', но некоторые делают.Поле version
имеет тип string
.Другими словами, условие ищет несоответствие между таблицами в этой версии.Я не хочу запрашивать строки, когда все версии таблиц не начинаются с 55
.Это соответствует.Я просто хочу запросить те строки, где есть те же таблицы версии 55
, но не все из них.
РЕДАКТИРОВАТЬ:
Вот игрушечный пример.Я сожалею, что очень сложно опубликовать точные таблицы и данные из-за сложности.Этот образец передает значение и регистр:
t1:
------------------------
name code verison
------------------------
aa 11 55x
bb 22 33x
cc 99 55x
t2:
------------------------
name code verison
------------------------
dd 11 55x
ee 22 33x
ff 99 55x
t3:
------------------------
name code verison
------------------------
gg 11 66x
hh 22 44x
ii 99 55x
t5:
------------------------
name code verison
------------------------
jj 11 66x
kk 22 88x
ll 99 55x
t5:
name code verison
mm 11 66x
nn 22 88x
oo 99 55x
В этих 5 таблицах есть две строки в каждой таблице, которые имеют одинаковые code
среди 5 таблиц.Мне интересно найти строки, в которых одна или несколько таблиц имеют version
, начинается с 55
, , но не все таблицы .Которые в этом случае удовлетворяются строками с name
: (aa, dd, gg, jj, mm)
(которые имеют code
11
).
Но остальные строки не должны выходить из запроса.Зачем?потому что либо ни один из их version
не начинается с 55
, (name
: bb
, ee
, hh
, kk
, mm
), либо потому, что все они имеют version
запускис 55
(name
: cc
, ff
, ii
, ll
, oo
).
Другими словами, мне нужны строки с несовместимой версией по сравнению с версиями, начинающимися с 55
(т.е. не только неравные версии, но точно, некоторые начинаются с 55
а некоторые нет)