• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Breadcrumb

  • Hjem
  • forums
  • [LØST] MySQL opslag

Snak med

Opret dig!

Af peque | 25.01.2019 09:30

[LØST] MySQL opslag

Hjælp generelt
Hejsa gruppe
Jeg har et lille spørgsmål omkring MySQL

Jeg har 2 tabeller
Users og vessels


tbl 1
+-----+------+------------+---------------------+
| uid | name | lastname | timestamp |
+-----+------+------------+---------------------+
tbl 2 vessels
+----+---------+-----------------+-----+---------+------+--------+
| id | imo | name | sid | snr | uid | active |
+----+---------+-----------------+-----+---------+------+--------+

Mit sql kald ser således ud PT - men der mangler noget
SELECT users.uid,users.name,users.lastname,users.timestamp,vessels.name from users,vessels where users.state='X' AND users.uid=vessels.uid;

Som det ses her ønsker jeg
uid name lastname og timestamp fra users tabellen - samtidigt med jeg ønsker at få navnet fra vessels tabellen hvor mit username står i uid.
Dert fungerer reelt set fint så længe der er noget i vessels.uid - Men hvis det er tomt eller NULL kommer kommer der empty resultset - Hvilket er logisk sålænge vesselsd.uid er tomt - så er der ikke noget resultat .

Kan man på nogen måde acceptere et tomt felt - eller skrive sig ud af - at feltet vessels.uid kunne være tomt - og derfor ikke kunne bruges med i sammenligningen!

Alt således at jeg får users.uid users.name users.lastname users timestamp samt vessels.name HVIS users.uid=vessels.uid

Håber det giver lidt mening
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer4

# 1

6 år 4 måneder siden

Permalink

Indsendt af ejvindh den 25. januar 2019 kl. 10:20

Permalink

Duer dette?
SELECT

Duer dette?
SELECT users.uid,users.name,users.lastname,users.timestamp,vessels.name
from users,vessels
where users.state='X' AND
(users.uid=vessels.uid OR vessels.uid IS NULL);

  • Log ind eller opret dig for at tilføje kommentarer

# 2

6 år 4 måneder siden

Permalink

Indsendt af ejvindh den 25. januar 2019 kl. 10:27

Permalink

Njaah....nok næppe. For så

Njaah....nok næppe. For så ved databasen jo ikke, hvad den skal joine... Den skal jo have at vide HVILKET vessels.name den skal koble sammen med user-data.

Jeg tror du vil komme længere med at tilrette strukturen på din database. Normalt plejer man vel også at sige, at en tabel-id skal være required -- typisk ved at sætte den til autoincrement. Ellers får du noget bøvl med at joine tabeller.
  • Log ind eller opret dig for at tilføje kommentarer

# 3

6 år 4 måneder siden

Permalink

Indsendt af marlar den 25. januar 2019 kl. 14:47

Permalink

Prøv med LEFT JOINSELECT

Prøv med LEFT JOIN

SELECT
users.uid,
users.name,
users.lastname,
users.timestamp,
vessels.name
FROM
users
LEFT JOIN
vessels ON users.uid = vessels.uid
WHERE
users.state = 'X'

  • Log ind eller opret dig for at tilføje kommentarer

# 4

6 år 4 måneder siden

Permalink

Indsendt af peque den 26. januar 2019 kl. 07:14

Permalink

@Marlar
Det var lige den

@Marlar

Det var lige den jeg manglende - Så det var selve syntaksen jeg havde en lille fejl i !
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

Privatbeskeder 0
BigLinux 0
llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0

Seneste aktivitet

Chatgpt satire 1
Læsning af databasefil i Firefox 2
Vanilla OS 15
Backup/synkronisering? 2
Pepsi Challenge 4
"Intet realistisk alternativ" - mig i r*ven 10
Linuxin er nu migreret til Drupal 11 13
Et Dansk alternativ til Facebook 18
Ingen Mint 3
Ekstern Blu-ray-brænder, der fungerer med PCLinuxOS 3
Københavns og Aarhus Kommune dropper MS 9
Open Source-eksperimentet 1
Microsoft og Google ud af de danske skoler 2
Udfordringer med lydin på Debian 12 1
ExplainingComputers? 2
Nextcloud på mobilen 1
Vil du have et sikrere og mere privat internet? Du skal blot installere Vivaldi-browseren med Proton VPN understøttelse! 1
Ny Linuxin på vej :) 43
5G 9
Edit 12

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !