Left, right, inner, annat?

PHPportalen Forum Index » Databaser
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
marcusgarden



Medlem i: 2920 dagar

Status: Offline



#742033
Inlägg Skrivet: 2017-12-09 01:41      Ämne: Left, right, inner, annat? Citera

Jag har problem att förstå/få till en fråga från mysql:/

Jag har 4 tabeller:

user (id, namn, etc, ...)
meriter (id, merit_namn, etc, ...)
user_placering (user_id, placering)
user_merit (user_id, merit_id)

Jag har en sida där man ska fastställa placering och merit på personer, sidan visar alla personer, en dropdown för placering (1-10) och en dropdown som pouleras från tabellen meriter.

Allt ska sparas i tabellerna user_placering och user_merit och det gör det.

Från början så ska dropdownerna vara tomma, vilket de är, efter att man sparat resultatet så ska dropdownerna populeras efter det som är sparat.

Men under några omständigheter så fungerar inte min fråga:/ Jag gör något fel som jag inte alls förstår:/

Jag har inte koll på inner, outer, left, etc...jag har kört på trial and error och nu faller den begränsade kunskapen:/

Resultatet från mysql är tomt, alltså jag gör något fel:/

Idag använder jag LEFT JOIN.

Hur ska jag bygga en fråga för att hämta alla användare och visa deras placering och meriter?

Tack på förhand!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Azreal
Administratör



Medlem i: 4640 dagar
Från: Uppsala, bor i Göteborg
Status: Offline



#742034
Inlägg Skrivet: 2017-12-09 09:26      Ämne: Citera

Denna kan nog ge dig hjälp på traven http://www.phpportalen.net/viewtopic.php?t=37634
 

_________________
Konsultation via PM, inte gratis.
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
marcusgarden



Medlem i: 2920 dagar

Status: Offline



#742035
Inlägg Skrivet: 2017-12-09 10:19      Ämne: Citera

Hej och tack för svar!

Nja...jag har nog gjort något annat som jag inte ens förstår vad jag inte förstår:/

När jag tar bort ORDER BY så försvinner problemet..

Tips på det?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
marcusgarden



Medlem i: 2920 dagar

Status: Offline



#742036
Inlägg Skrivet: 2017-12-09 21:37      Ämne: Citera

Ok, verkar fungera:/

Har alltid gjort samma sak, kört med LEFT JOIN, på trial and error, gjorde samma nu men det verkar inte fungera denna gång.

Stoppade in INNER JOIN istället och då verkar det fungera:)

Finns det någon som faktiskt kan detta och kan förstå varför det fungerar och som har lust att kanske beskriva varför?

Tacksam för svar!

EDIT----------------

Fel av mig, igen:/

Det ger resultat OM det redan finns något sparat i db, inte annars...det var då f*n vad svårt detta ska vara:/
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
webbhelp



Medlem i: 4137 dagar
Från: Sverige
Status: Offline



#742038
Inlägg Skrivet: 2017-12-12 09:31      Ämne: Citera

Om du använder INNER JOIN så krävs det att det finns rader i de andra tabellerna som tillhör användaren.
Du hittar ingen användare om den inte har meriter osv, ifall du kör inner join.

Kör du left join så hittar du användaren även om den inte har meriter, då blir meriterna NULL.

KOD:
1:
SELECT user.*, user_placering.id, user_merit.id FROM user
2:
    LEFT JOIN user_placering ON user_placering.id = user.id
3:
    LEFT JOIN user_merit ON user_merit.id = user.id


Den här koden bör fungerar. Då bör du få alla användare och relationernas ID.
Det som inte fungerar här, är om du vill att meriter.merit_namn ska hämtas istället för merit_id. För om du även vill ha meriter.merit_namn så behöver du i detta fallet köra en INNER JOIN men det kan du inte bara gör direkt här då du joinar ihop med user tabellen och inte meriter tabellen.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Skicka e-post Besök användarens hemsida MSN Messenger
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Databaser
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic