ugrás a tartalomhoz

mysql táblák összekapcsolása

Termes · 2011. Okt. 4. (K), 09.49
Sziasztok.

Egy tök egyszerű adatbázist szeretnék létrehozni, ahol az adatok külön táblákban vannak.


| a | b |
_____________
| aid | bid |
| ido | nev |
| stb | iks |


Az "a" tábla id-jéhez tartozó adatokat szeretném lekérdezni a "b" táblából úgy, hogy az aid értéke alapján az összes sort megjeleníti a "b" táblából.

A bid az elsődleges kulcs.

Tehát tudni szeretném, hogy a "2 | 2011.10.04. | stb" sor kihez tartozik a "b" tábla szerint. Azt hiszem.

Egy manual jól jönne, mert nem igazán tudom, hogy melyik parancs szolgál ilyesmire. Ha ebben segít valaki, a többit kibogarászom. :D

Köszönettel:
T
 
1

SQL+JOIN

Hidvégi Gábor · 2011. Okt. 4. (K), 10.10
3

Ez lesz!

Termes · 2011. Okt. 4. (K), 10.26
Kedves Gábor!

Köszönöm a megoldást, pont erre volt szükségem! :D
2

táblák összekötése

asam9 · 2011. Okt. 4. (K), 10.14
szia,

pl. a SELECT WHERE-je lesz az, amit keresel :)

SELECT (ide jön a mező(k) neve, amit ki akarsz nyerni az adatbázisból) FROM (ide jön a tábla/táblák neve, amiket használsz a lekérdezéshez) WHERE (itt adhatsz meg feltételeket, ill. kötheted össze a táblákat, pl így: aid = bid)


a táblákat, mezőket vesszővel, a feltételeket az AND vagy OR operátorokkal "választhatod el" egymástól.
ha a mezők neve azonos lenne, akkor pedig elé kell írni a tábla nevét ilyen formában: tabla_neve_1.id = tabla_neve_2.id.

itt is tudod csekkolni a szintaktikát: http://w3schools.com/sql/default.asp
4

igen,...

Termes · 2011. Okt. 4. (K), 10.27
asam9!

Köszönöm szépen!
5

Még valamit szeretnék...

Termes · 2011. Okt. 21. (P), 14.47
Bocsánat, még valamit kérdeznék:

Ha a fenti "x" adatbázis alapján a "b" tábla elemeit kiíratom, de csak azoknak az adatai jelenjelek meg, akik az "a" tábla "stb" oszlopában bizonyos feltételnek megfelel.
SELECT * FROM b WHERE datum > (DATE_SUB(CURDATE(), INTERVAL 6 DAY)) WHERE a.stb="férfi"
Ezt próbáltam, de nyilvánvalóan hibás.

Köszönök minden segítséget.
6

JOIN

Poetro · 2011. Okt. 21. (P), 15.12
Mivel nem mondtad, milyen feltétellel kapcsolódik össze a és b tábla, így nem lehet teljes választ adni, valamint azt se tudjuk, hogy milyen JOIN-ra van szükség, de egy példa:
SELECT * FROM b INNER JOIN a ON a.id = b.id WHERE b.datum > (DATE_SUB(CURDATE(), INTERVAL 6 DAY)) AND a.stb="férfi"
7

igaz

Termes · 2011. Okt. 21. (P), 20.38
Igazad van, szóval az "a" tábla tartalmazza a felhasználókat, illetve az adataikat (id, név, nem, stb oszlopokkal). A "b" tábla egy szolgáltatás (id, datum, kezelo oszlopokat tartalmaz), amit a felhasználók vehetnek igénybe. A közös az id, amivel lehet azonosítani a júzereket. A lekérdezéskor szeretném kideríteni, hogy a szolgáltatásokat 7 napon belül igénybe vevők között hányan vannak férfiak.
8

Szuper!

Termes · 2011. Okt. 22. (Szo), 13.31
Köszönöm Poetro!

Tökéletesen működik és ráadásul erre is volt szükségem!

Köszi.
Üdv:
T.