• Opret dig
  • Glemt adgangskode

User account menu

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

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 5 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 5 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 5 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 5 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

llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0
Linux fra begynder til professionel af O'Reilly 0

Seneste aktivitet

PCLinuxOS 37
Hvad med en afstemming Malar 3
den er sjov 3
Reserve kernel og btrfs 3
En snak om Linux-kompatibel software 12
"Intet realistisk alternativ" - mig i r*ven 17
Open source events i danmark? 3
Virtuel maskine? 4
Gode anmeldelser Zorin OS 17.3 8
Open Source-eksperimentet 5
Nulstilling af adgangskode 6
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !