webForumDet fria alternativet

två värden i en tabel mot en annan tabell

Databaser & SQL

1 svar · 240 visningar · startad av daniel_ra

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

Har tre tabeller.
order, user

tabellen order ser ut såhär:
orderID,userID,userID2
userID och userID2 är alltså två användare från tabellen user.

Tabellen user ser ut såhär:
userID,username

om jag skulle vilja plocka ut orderID samt namn på user1 och namn på user2 från ordertabellen så kan jag ju naturligtvis inte göra såhär:

select orderID,username from order,user where order.userID=user.userID and order.userID2 = user.userID. jag kommer ju då inte att få några träffar alls. men hur skulle jag kunna göra för att få fram detta resultat?

Medlem sedan juni 200032 967 inlägg
#2
  1. Du ska inte ha en tabell som heter order.
  2. alltid ange vilken dbms du använder.
select o.orderid, u1.username, u2.username
from tabellen_som_inte_får_heta_order o
left outer join user u1 on o.user1 = u1.userid
left outer join user u2 on o.user2 = u2.userid
260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)