У меня есть довольно сложный запрос:SQL: объединить два выбирает в одном комплексе Query
$query = "SELECT * FROM element_skanning yt1
JOIN (SELECT objekt_nr, element_nr, vart
FROM element_skanning
GROUP BY objekt_nr, element_nr, vart
HAVING count(*) > 1)
yt2 ON (yt2.objekt_nr=yt1.objekt_nr AND yt2.element_nr=yt1.element_nr AND yt2.vart=yt1.vart)
ORDER BY 2";
Это как мой дб выглядит следующим образом:
id objekt_nr element_nr vart
-----------------------------------------
1 1 1 Blå
2 1 1 Blå
3 1 1 Rosa
4 1 1 Kont
5 2 1 Rosa
6 2 2 Blå
Мой excisting запрос даст мне результат: 1 & 2 потому что я использую три входа.
Теперь я хотел бы поискать третьего обмана. Id: 3
Как я могу получить результат id: 1,2,3, но не 4, 5 и 6?
Проверка должна быть, если есть строка с тем же obj_nr & el_nr, но «blå» или «Rosa» «vart» раньше.
Так, Id 3 будет простофиля из ид: 1 & 2.
Id: 2, будет простофиля из 1 & 3.
Id: 1, будет простофиля из 2 & 3.
Я переписал это несколько раз, я думаю, поэтому я не могу написать запрос.
Надеюсь, вы можете понять, чего я хочу здесь ?!
И как это сделать?
хорошо выглядит, и работает. Но у меня только были обманы, если у «vart» есть две записи «blå». Нет, если кто-то «blå», а один - «rosa», но имеет тот же obj & el_nr ... –
Может ли быть эта строка, которая ошибается: yt2.vart = yt1.vart? –
@ Mjukis. , , Я думаю, там была какая-то желаемая кодировка. Я знал, что хочу, но не может «присоединяться» к «vart» и проверять дубликаты без 'vart'. Таким образом, модификация должна исправить эту проблему. –