Kezdőoldal » Számítástechnika » Programozás » MYSQL SELECT problémába ütköztem?

MYSQL SELECT problémába ütköztem?

Figyelt kérdés

Van 2 táblám, és benne az alábbi mezők:

users[username,name,jelszo]

torzs[username,postcode,city,address,tel]

Elsődleges kulcs a username.


Ha bekérem a nevet ami a users táblában van és szeretném kiíratni a torzs-ből a címet és a telefonszámot, ezt milyen SELECT parancs-al tudom megtenni?


2020. máj. 25. 15:10
 1/10 anonim ***** válasza:
40%

Select username, city, adress, tell

From users, torzs

While users.username = torzs.username


Ha jól emlékszem, bár öt éve nem programoztam szinte semmit, MySql-t pedig k* rég nem használtam.

2020. máj. 25. 15:16
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
40%
Lehet, hogy a while helyett when áll.
2020. máj. 25. 15:23
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:
Sajnos nem működik egyikkel sem.
2020. máj. 25. 15:29
 4/10 anonim ***** válasza:
63%

#2 a where lesz az amit te keresel.. :)


"Ha bekérem a nevet ami a users táblában van és szeretném kiíratni a torzs-ből a címet és a telefonszámot, ezt milyen SELECT parancs-al tudom megtenni?"


Nem igazán értem a megközelítést bár én ORM-ben gondolkodok szóval ne is menjünk bele.


A fenti példa is működik, ha a where-re cseréled, de érdemes utána olvasnod a különböző join-oknak.

[link]

2020. máj. 25. 15:41
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:
63%
Igazad van, where :D
2020. máj. 25. 16:04
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:
100%

A SELECT-hez oda kell írni a tábla nevét is, mert ha két azonos oszlopnév is van az összekapcsolt táblákban, akkor nem lehetne eldönteni melyikre gondolt a tisztelt user.


SELECT u.name, t.city, t.address, t.tell

FROM users u, torzs t

WHERE u.username=t.username;


Az "users u" az ugyanaz, mint az "users AS u", alias, amire utána hivatkozhatsz.

2020. máj. 25. 21:43
Hasznos számodra ez a válasz?
 7/10 A kérdező kommentje:

Igen így már jobb, de kiírja az összes nevet.


Azt hogyan tudom megcsinálni hogy csak azt a nevet és adatait írja ki amit előtte egy input-al bekérek?

2020. máj. 26. 08:49
 8/10 anonim ***** válasza:
100%

Hát valójában teljesen felesleges akkor bekérdezned a user táblába még egyszer, hiszen elég lenne a where feltételbe átadnod a felhasználónevet. (prepared statement!!!! sql injection-re vigyázni.)


Deeeeeeeee.. csak úgy mellékesen: miért tárolod ezeket az adatokat külön táblában, ha 1:1 az összerendelés?

2020. máj. 26. 09:50
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:
100%

#8 jól mondja. A külön táblának csak akkor van értelme, ha nem rendelkezhető össze a két tábla 1-1-el. Például:


Ha egy embernek a címe, neve, stb.. 1-1 adata kell, akkor az egy tábla. Írok egy példát arra, amennyiben több tábla kell:


Példa: könyvtár


Három tábla:


Könyvek: a könyvekre vonatkozó információ (könyv ID-ja, szerző neve, könyv címe, kiadás dátuma, stb..)


Emberek: ügyfélszám, név, cím, telefonszám, stb...


Kivétel: ügyfélszám, könyvID, dátum


Itt már van értelme a több táblának, és itt is tudsz lekérdezni adatokat. Pl. hányan/kik vettek ki Jókai Mórtól könyveket 2010 és 2020 között.

2020. máj. 26. 12:04
Hasznos számodra ez a válasz?
 10/10 A kérdező kommentje:

#8 #9


Igen igazatok van egyszerűbb és észszerűbb is egy táblával megoldanom, már át is írtam és így már nincs gond a lekérdezéssel.


Ment a zöld pipa mindkettőtöknek.

2020. máj. 26. 12:26

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!