T-shirt apdruka,un mazo uzlīmju taisīšana. 4
Profesionālie tulkošanas pakalpojumi. 5
Pardod: MSI GeForce RTX 2080ti gaming X TRIO Graphic Card 1
Vēlos piedāvāt darbu online. 0
OCTA termiņš 13
Ka sauc Pasaules dalu kura dzivojam 4
google 1
Taustiņu funkcijas izmainīšana 2
Torrent 1
ESET izlaiž 2017.gada produktu izdevumus 23
VIAPLAY: Video tiešsaistē skatās 70% Latvijas iedzīvotāju 21
Katrā desmitajā datorā joprojām izmanto Windows XP 2
Google tuvākajā laikā atteiksies no Chrome paplašinājuma palaidēja 2
Acer ievieš nozares pirmo ieliekto monitoru ar acu izsekošanas funkcionalitāti 4
Adobe laiž klajā ārkārtas atjauninājumu 3
Tests: Cik precīzs ir "lēta gala" velo spidometrs? 3
Leģendārie telefoni – Nokia 3310 un citi 3
Puisis iziet Super Mario spēli mazāk kā piecu minūšu laikā un labo pasaules rekordu 2
Līdz 29.jūlijam atjaunini savu Windows bez maksas! 3
Kā uzlabot televizora skaņu? 2
Programma, ar kuras palīdzību fotogrāfijas pārveidot .gif formātā 1
Aproce, kas sastāv no 25 instrumentiem 1
Trīs padomi televizora izvēlei 2
Windows 7 ēra tuvojas noslēgumam, Microsoft koncentrējas uz Windows 10 1
Lietotāji online: 73
Reģistrētie lietotāji online: 0
Viesi online: 73
Sveicināti!
Lūdzu jūsu palīdzību vienā jautājumā.
Man ir divas tabulas iekš datubāzes -
users:
http://yourdesign.lv/tabulas/1.jpg
friends
http://yourdesign.lv/tabulas/2.JPG
es vēlos noskaidrot "draugus online". es esmu user piem. ar id = 3
lai noskaidrotu savu draugu id, lietoju:
SELECT users.id, friends.kursh, friends.kuru
FROM users
INNER JOIN friends
ON friends.kuru = users.id
AND users.id = 3
OR friends.kursh = users.id
AND users.id = 3
..un sanāk:
http://yourdesign.lv/tabulas/3.jpg
.. viss bumbās.
BET vēlos SELECT tikai tos friends, kuri ir online, tb users.online> time()-15*60
kāds izskatītos sql vaicājums? es te gruzos, man izmet tos, kas online, bet viņus atkārto kādas 50 reizes.. tas man nav vajadzīgs. Kāds var palīdzēt?
nujā, es ar to JOIN sapinos, nezināju viņa nozīmi īsti.
ob1, tu nesaprati, un nav brīnums, ko es vēlos, jo uzrakstīju tā, ka saprotu tikai es :D
p.s. beidzot atrisināju šito murgu ar:
SELECT users.id, friends.kursh, friends.kuru
FROM users, friends
WHERE users.online> 1244710000
AND users.id = friends.kuru
AND friends.kursh = 3
OR
users.online> 1244710000
AND users.id = friends.kursh
AND friends.kuru = 3
pirmkārt, tavos where nosacījumos divas reizes parādās viens un tas pats, pareizāk būtu rakstīt
WHERE
users.online> 1244710000 and
((users.id = friends.kuru and friends.kursh = 3) or (users.id = friends.kursh and friends.kuru = 3))
otrkārt, tas nebūs gana optimāli, jo tad tev primārais index būs uz online laiku, labāk tomēr būtu uz ID.
es taisītu tā, ka atlasītu no friends tabulas visus ierakstus, kur figurē id 3 un piejoinotu klāt users tabulu ar laiku, kad viņi pēdējo reizi bij online un pēc vajadzības tad tam joinam pieliktu where online > <kautkāds_laiks>
atlasīt tos drauga_id var teiksim ar
select
case
when friends.kuru = 3 then friends.kursh
else friends.kuru
end as drauga_id
from
friends
where
friends.kuru = 3 or friends.kursh = 3
edit - tas varētu izskatīties šādi, bet strādātu atkarībā no sql db, citās var joinot pie paša veidota mainīgā, citās nevar, tad var taisīt vnk subeslectu vai nedaudz savādākus where nosacījumus
select
case
when friends.kuru = 3 then friends.kursh
else friends.kuru
end as drauga_id
from
friends
left join users on drauga_id = users.id
where
(friends.kuru = 3 or friends.kursh = 3)
and users.online > time()-15*60
jā, optimālāk ir vispirms atlasīt draugus, tq..
bet man vajag zināt nevis kad viņi pēdējo reizi bij online, bet gan vai viņi TAGAD ir online. man sesija beidzas pēc 15min = 60*15, tātad draugs ir sistēmā, ja online(tas skaitlis)>time()-60*15
edit: rezultatā izmet: (manā nevar joinot pie pašveidota mainīga acīmredzot)
#1054 - Unknown column 'drauga_id' in 'on clause'
SELECT users.id, friends.kursh, friends.kuru
FROM users
INNER JOIN friends
ON friends.kuru = users.id
Where
users.id = 3
OR friends.kursh = users.id
AND users.id = 3
Kaut kā tā? ON ir domāts tabulu "salinkošanai". Filtrēšanai parasti izmanto WHERE.