Kezdőoldal » Számítástechnika » Weblapkészítés » Hogyan tudom megoldani ezt az...

Hogyan tudom megoldani ezt az SQL JOIN problémát?

Figyelt kérdés

Az a lényeg, hogy vannak fent áruk egy táblában, és az ahhoz tartozó képek egy másik táblában. A képek connect_id-ja megegyezik a megfelelő áru id-jával. Nyilván utóbbi auto incrementes integer érték.


Az a lényeg, hogy amikor listába kiírom az adatokat egy while ciklussal, úgy kéne joinolnom, hogy a termék adatai csak egyszer íródjanak ki, utána közben a többi iterációval pedig az összes kép.

Tehát mondjuk ár, méret, leírás egyszer, aztán nyolc kép

aztán

ár méret leírás, aztán hét kép (nyilván amennyi tartozik a termékhez.)


Eddig erre jutottam:


"SELECT DISTINCT images.link AS imagelink, properties.* FROM properties INNER JOIN images ON images.connect_id = properties.id"


Lefut maga a kód, de így annyiszor írja ki az egyedi termékekhez tartozó adatot, ahány darab kép tartozik a termékhez, tehát a DISTINCT nem segít a dolgon.


A link a kép, megvan az oka, hogy nem image vagy picture lett a neve, de ez tökmindegy.


Valami tipp?



2017. okt. 8. 23:53
1 2
 1/20 anonim ***** válasza:

A bemásolt kód nem ír ki sehova semmit, ez egy SQL lekérdezés, az pedig teljesen természetes, hogy ha az egyik táblában n-szer szerepel az érték, akkor az összekötött lekérdezésben is n-szer fog (a DISTINCT meg az azonos sorokat szűri, hogy minden sor egyedi legyen, egyáltalán nem ide való).

Ha nem így lenne, akkor nem tudnál kirakni az összes képet.

Ami nálad hibás az a lekérdezés feldolgozása.

Vagy külön kérdezd le a képeket, vagy okosabban dolgozd fel a lekérdezés eredményét.

2017. okt. 8. 23:58
Hasznos számodra ez a válasz?
 2/20 A kérdező kommentje:

Ez most komoly? "Az a lényeg, hogy amikor listába kiírom az adatokat egy while ciklussal,"


A direkt félreértés itt kötelező?


"a DISTINCT meg az azonos sorokat szűri, hogy minden sor egyedi legyen, egyáltalán nem ide való"


Hát nekem éppen az azonos értékeket kell kiszűrnöm a properties adatai közül.


Ennyi erővel válaszolhattál volna a kérdésre. :)

2017. okt. 9. 00:04
 3/20 anonim ***** válasza:

Legalább a pofád ne lenne ekkora, ha már ennyire ostoba vagy.

"Az a lényeg, hogy amikor listába kiírom az adatokat egy while ciklussal,"

Leírom még egyszer, lassabban, mert látom nehéz a felfogásod.

Amit te szeretnél, olyan NINCS.

A JOIN összekapcsolja a két táblát és annyiszor fognak ismétlődni a sorok, ahányszor össze tudja kapcsolni a két táblát az adott értékeken.

A DISTINCT pedig (még egyszer) az azonos sorokat szűri ki.

Nem a hasonlókat. Nem a 99%-ban egyezőket. Az azonosokat. Ha két sorban KÜLÖNBÖZŐ a kép, akkor az a két sor NEM LESZ AZONOS.

Mint írtam, két lehetőséged van.

Vagy nem agyatlanul dolgozod fel az eredményt, ahogy a titokzatos kódod most csinálja, hanem figyelmen kívül hagyod az azonos értékeket és a különböző értékekre koncentrálsz, vagy külön kérdezed le a képeket, hiszen az egy más dimenzió (sok az egyhez) a tulajdonságokhoz képest.

2017. okt. 9. 00:13
Hasznos számodra ez a válasz?
 4/20 A kérdező kommentje:

"Legalább a pofád ne lenne ekkora, ha már ennyire ostoba vagy.

"

Amúgy te értelmes felnőtt embernek érzed magad ilyen stílussal? Mit vársz tulajdonképpen attól, hogy engem sértegetsz névtelenül egy fórumon?

2017. okt. 9. 00:16
 5/20 anonim ***** válasza:
0%
Tudod értelmezni amit írtam, vagy még lejjebb kell mennem egy szinttel?
2017. okt. 9. 00:17
Hasznos számodra ez a válasz?
 6/20 A kérdező kommentje:
Ennél már nem tudnál lejjebb süllyedni, hidd el! :)
2017. okt. 9. 00:19
 7/20 anonim ***** válasza:
0%

Pedig úgy látszik még így is magas amit írok.

De legalább megpróbáltam.

2017. okt. 9. 00:23
Hasznos számodra ez a válasz?
 8/20 anonim ***** válasza:
A whileban kellene ezt lekezelni, nem SQL szinten.
2017. okt. 9. 00:48
Hasznos számodra ez a válasz?
 9/20 anonim ***** válasza:
0%
JOIN LEFT (vagy RIGHT - mindig keverem :) ?
2017. okt. 9. 03:41
Hasznos számodra ez a válasz?
 10/20 anonim ***** válasza:
Vagy Inkább GROUP BY
2017. okt. 9. 03:42
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!