Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 10 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5
Príspevok NapísalOffline : 16.07.2017 20:12

Vedel by mi niekto poradiť s týmto. Mam tri tabuľky:
A (idA, nameA)
B (idB, nameB)
AB (idA, idB)

Potrebujem upraviť dotaz, ktorým by som vedel vytiahnuť dáta z tab. A, s tým, že potrebujem tam zahrnúť podmienku nerovnosti. Napríklad: zobraz všetky záznamy z tabuľky A okrem, tých (napr.: nameB != ‘xxx’ ) uvedených v podmienke WHERE.

Kód:
SELECT * FROM A
LEFT JOIN (AB, B)
ON (A.idA = AB.idA AND B.idB = AB.idB)
WHERE B.nameB != “xxx“


Offline

Správca fóra
Správca fóra
MySQL - SELECT JOIN

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39
Príspevok NapísalOffline : 16.07.2017 20:32

To čo máš ti nefunguje?
Kód:
SELECT A.* FROM A
LEFT JOIN AB ON AB.idA = A.idA
LEFT JOIN B ON AB.idB = B.idB
WHERE B.nameB != "xxx"







_________________
always is always wrong
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5
Príspevok Napísal autor témyOffline : 16.07.2017 20:54

Funguje, ale nie korektne. Dotaz vráti jeden záznam z tab. A viackrát (podľa počtu záznamov idA v tab. AB)


Offline

Správca fóra
Správca fóra
MySQL - SELECT JOIN

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39
Príspevok NapísalOffline : 16.07.2017 21:00

Pridaj si na koniec
Kód:
GROUP BY A.idA







_________________
always is always wrong
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5
Príspevok Napísal autor témyOffline : 16.07.2017 21:39

Keď tam dám GROUP BY, tak to síce nevyhodí viackrát jeden záznam, ale tá podmienka, aby nezobrazil ('xxx') záznam, funguje len vtedy, ak je v tab. AB len jeden záznam pre hodnotu odkazujúcu na xxx v tab. B.
Ak sú v tab. AB napr. dve hodnoty, ktoré odkazujú na idA=1 hodnoty xxx a yyy (tab. B), tak dotaz vyhodí záznam idA=1, aj keď by nemal.

Neviem, či som to napísal zrozumiteľne :)


Offline

Správca fóra
Správca fóra
MySQL - SELECT JOIN

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 20.07.2017 10:32

Najlepsie bude, ak uvedies nejake vzorove data a zelany vysledok







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5
Príspevok Napísal autor témyOffline : 20.07.2017 18:13

MySQL - SELECT JOIN

Potrebujem vypísať napríklad: všetkých užívateľov ktorý nemajú kontakt 222.
V tomto prípade by malo vypísať len users: Jano.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 20.07.2017 23:24

Kód:
select u.name, u.id
from users u
left join user_contacts uc on (u.id = uc.id_user)
left join contacts c on (uc.id_contact = c.id)
where u.id not in (
  select uc2.id_user
  from user_contacts uc2
  left join contacts c2 on (uc2.id_contact = c2.id)
  where c2.number = '222'
)
group by u.id, name


Najoinujem všetko dohromady a odstránim všetky riadky, ktoré nechcem - v tomto prípade všetkých užívateľov, pri ktorých nájdem číslo 222.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
MySQL - SELECT JOIN

Registrovaný: 19.05.08
Prihlásený: 14.04.24
Príspevky: 664
Témy: 28
Bydlisko: Slovensko
Príspevok NapísalOffline : 20.07.2017 23:49

Kód:
SELECT * from Users U
where U.idUsers not in (
SELECT U_in.idUsers as innerID
  FROM [Users] U_in
  LEFT JOIN users_has_contacts UC on UC.idUser = U_in.idUsers
  LEFT JOIN Contacts C on C.idContacts = UC.idContacts
  where Number = 222
  group by U_in.idUsers)


EDIT: BX dal nieco podobne, ale takto nie si obmedzeny pomocou group by, ten vzdy radsej vo vnoreni aby si sa neobmedzoval na stlpce zadefinovane v group by (to ta trapi pri tabulkach s 30+ stlpcami)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5
Príspevok Napísal autor témyOffline : 21.07.2017 18:19

Vďaka. Funguje to. Presne toto som potreboval.


Odpovedať na tému [ Príspevkov: 10 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. MySQL join...

v Databázy

7

671

11.07.2011 18:39

coldak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php + mysql : dvojity join

v Databázy

2

673

15.07.2011 20:28

jaji Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. join 3 tables mysql

v Databázy

9

770

05.03.2010 17:32

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL Select

v Databázy

2

402

07.04.2014 6:52

XOLOO Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. select z mysql

v PHP, ASP

4

482

09.10.2007 21:23

bruno.b Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. mysql select pre autocomplete

v Databázy

0

262

17.06.2013 12:02

general667 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL select date between

v Databázy

3

356

05.06.2013 20:48

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ako zmenit vystup - select mysql

v PHP, ASP

3

543

29.07.2008 8:02

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. mysql: 2 tabulky - jeden select

v Databázy

16

702

09.11.2014 22:03

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL SELECT IN() a rovnake hodnoty

v Databázy

11

1235

25.08.2009 20:48

bmatias Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Z mySql do <select>

v PHP, ASP

13

598

02.05.2009 23:32

suchy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SELECT z MySQL db medzi dvoma casmi

v Databázy

9

2087

11.07.2018 13:51

jumper Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Automaticke doplnanie <select> po kliknuti , vyber z MySql

v JavaScript, VBScript, Ajax

1

443

22.05.2015 12:44

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vyber nevyhovujucich zaznamov (JOIN)

v Databázy

1

541

26.01.2010 22:02

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problém s LEFT JOIN

v Databázy

6

558

19.09.2017 18:44

expresado Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problém z LEFT JOIN

v Databázy

2

738

27.06.2009 13:35

pWneD Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra