Oznámení
Omlouváme se, provoz fóra byl ukončen
ako sa zapisujú aliasy a výraz table.colulm
Upozornění: Tohle vlákno je hodně staré.
- Čamo
- Člen | 697
Zdravím, ja som pred týždňom prvý krát videl dibi, tak by som sa ak
dovolíte spýtal asi úplne triviálne veci.
Potrebujem napísať takéto niečo:
select * from order o
left join
order_address o_a
on
o.id = o_a.id
where id = x;
Neviem ako spraviť
- Escapovanie názvu order. Stačí to dať do [order]?
- Ako k tomu pripísať alias? [order] as [o]???
- Ako sa zapisuje o.id? [o].[id]???
Ďakujem.
EDIT:
Ešte by som potreboval poradiť ako správne v dibi napísať dotaz s AND
v spojení s ON:
'select o.*,
oa.name, oa.surname, oa.street, oa.city, oa.post_code, oa.country
from order as o
join
order_address as oa
on o.id = oa.order_id AND o.id = '.$id.'
join
order_item as oi
on o.id = oi.order_id'
Editoval Čamo (5. 4. 2015 1:33)
- Milo
- Nette Core | 1119
Dibi se dá používat více způsoby. Jedním z nich je psaní celého dotazu:
$db->query('
SELECT
[o].*,
[oa].[name], -- jedna možnost
[oa.surname], -- nebo takhle
oa.post_code -- někdy lze úplně vynechat, prostě pure SQL
FROM
[order] AS o
JOIN order_address AS oa ON o.id = oa.order_id AND o.id = %i', $id, '
JOIN ....
');
Ale hlavně, nikdy nevkládat proměnnou přímo do SQL řetězce (tak jak to
máš ty), ale používat modifikátory jako jsou
%i %s %n
atd…
Komentáře
Díky.
před 4 lety