[ 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 | 5
NapísalOffline : 16.07.2017 20:12 | MySQL - SELECT JOIN

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 | 39
NapísalOffline : 16.07.2017 20:32 | MySQL - SELECT JOIN

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 | 5
Napísal autor témyOffline : 16.07.2017 20:54 | MySQL - SELECT JOIN

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 | 39
NapísalOffline : 16.07.2017 21:00 | MySQL - SELECT JOIN

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 | 5
Napísal autor témyOffline : 16.07.2017 21:39 | MySQL - SELECT JOIN

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 | 51
Bydlisko: Bratislava
NapísalOffline : 20.07.2017 10:32 | MySQL - SELECT JOIN

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 | 5
Napísal autor témyOffline : 20.07.2017 18:13 | MySQL - SELECT JOIN

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 | 3
NapísalOffline : 20.07.2017 23:24 | MySQL - SELECT JOIN

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ý: 28.11.24
Príspevky: 666
Témy: 28 | 28
Bydlisko: Slovensko
NapísalOffline : 20.07.2017 23:49 | MySQL - SELECT JOIN

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 | 5
Napísal autor témyOffline : 21.07.2017 18:19 | MySQL - SELECT JOIN

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


 [ Príspevkov: 10 ] 


MySQL - SELECT JOIN



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

712

11.07.2011 18:39

coldak

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

php + mysql : dvojity join

v Databázy

2

707

15.07.2011 20:28

jaji

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

join 3 tables mysql

v Databázy

9

814

05.03.2010 17:32

rooobertek

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

MySQL Select

v Databázy

2

441

07.04.2014 6:52

XOLOO

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

select z mysql

v PHP, ASP

4

512

09.10.2007 21:23

bruno.b

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

mysql select pre autocomplete

v Databázy

0

294

17.06.2013 12:02

general667

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

MySQL select date between

v Databázy

3

387

05.06.2013 20:48

stenley

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

mysql: 2 tabulky - jeden select

v Databázy

16

765

09.11.2014 22:03

JanoF

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

ako zmenit vystup - select mysql

v PHP, ASP

3

578

29.07.2008 8:02

stenley

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

MySQL SELECT IN() a rovnake hodnoty

v Databázy

11

1281

25.08.2009 20:48

bmatias

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

Z mySql do <select>

v PHP, ASP

13

637

02.05.2009 23:32

suchy

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

SELECT z MySQL db medzi dvoma casmi

v Databázy

9

2599

11.07.2018 13:51

jumper

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

486

22.05.2015 12:44

stenley

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

Problém z LEFT JOIN

v Databázy

2

761

27.06.2009 13:35

pWneD

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

Problém s LEFT JOIN

v Databázy

6

607

19.09.2017 18:44

expresado

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

Vyber nevyhovujucich zaznamov (JOIN)

v Databázy

1

582

26.01.2010 22:02

stenley



© 2005 - 2024 PCforum, edited by JanoF