webForumDet fria alternativet

Hämta två tabeller med en fråga

PHP

5 svar · 594 visningar · startad av stattin

Medlem sedan jan. 2005713 inlägg
Frågan#1

Hej!

Sitter och håller på lite med php och mysql (3.4.10.2).

Om man har exempelvis en databas med två tabeller och dessa kolumner:

test1
id, created
1, 2010
-----------------------
test2
id, created
1, 2012

Också vill jag hämta ut båda tabellerna i en fråga.


$get_test = mysql_query("SELECT * FROM test1, test2 WHERE test1.id = 1 AND test2.id = 1");
$test = mysql_fetch_array($get_test);

echo $test['created'];

På det viset får jag ut 2012.
Hur skriver man frågan om man vill kunna hämta båda 'created' eller är det bara enklare att skriva en fråga för varje tabell?

Medlem sedan okt. 201187 inlägg
#2

SELECT * FROM test1 WHERE test1.id = 1
union
SELECT * FROM test2 WHERE test2.id = 1

givet att * i test1 är lika som * i test2
/Hasse

Medlem sedan jan. 2005713 inlägg
#3

berken skrev:

givet att * i test1 är lika som * i test2

Njaä det är dom ju inte då.

Medlem sedan okt. 201187 inlägg
#4

Då får du se till att det som är mellan "select" och "from" är samma antal fält av samma typ så kan du få det att fungera

Medlem sedan jan. 2005953 inlägg
#5

Du kan köra med alias

SELECT t1.created AS t1_created, t2.created AS t2_created FROM table1 AS t1, table2 AS t2 WHERE t1.id=1 AND t2.id=1
Medlem sedan jan. 2005713 inlägg
#6

metalboy skrev:

Du kan köra med alias

SELECT t1.created AS t1_created, t2.created AS t2_created FROM table1 AS t1, table2 AS t2 WHERE t1.id=1 AND t2.id=1

Verkar jobbigt :P
Kanske snabbare och enklare att hämta dom var för sig.
Eller börja med prefix_ på kolumn namnen kanske..

256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)