Hur skapar jag en relation mellan två tabeller i en databas i MySQL? Hur vill du att din "relation" skall fungera? Behöver du verkligen lägga in en FK? vet inte, det ända jag skulle behöva är en secondary key i tabellen svar så blir det en 1:N-koppling Om du inte är ute efter att använda automatisk borttagning av relaterade poster finns ingen anledning att markera i databasen hur tabeller är kopplade till varandra. Kopplingen utför du när du hämtar data: Vad gör LEFT JOIN eller vad är skillnaden på LEFT och RIGHT JOIN och INNER JOIN? INNER JOIN tar med de poster i vänstra och högra tabellen som matchar varandra på villkoret.relations problem i mysql
Som det ser ut just nu är detta:
Tabell: Fraga Fält: Fraga_id (PK) Not Null Unik, fraga , datum (date)
Tabell: Svar Fält: Svar_id (PK) Not Null Unik, svar , antal , fraga_id (unik)
och jag har fixat båda tabellerna till InnoDB så att "relationship" ska kunna göras.
Men sedan när jag går in på phpmyadmin och väljer databasen och sedan tabell fraga och sedan skriver jag en Fråga i den som ser ut så här: INSERT INTO fraga (fraga) VALUES ("Bla bla bla") och knapp "kör".
Så får jag upp denna fel-meddlenade: #1216 - FOREIGN KEY-konflikt: Kan inte skriva barn
jaha, fel på relationen mellan tabellerna. Hur fixar jag en fungerande?Sv: relations problem i mysql
Sv:relations problem i mysql
Sv: relations problem i mysql
SELECT ...
FROM tabell1
LEFT JOIN tabell2
ON tabell1.fält1 = tabell2.fält2 // <--- Kopplingen
Sv:relations problem i mysql
Sv: relations problem i mysql
LEFT JOIN tar med <b>alla</b> poster från vänstra. Där en matchande post i högra tabellen finns tas denna med. Om ingen matchande post finns, skapas en post med endast NULL-värden i resultatet.
RIGHT JOIN fungerar "likadant fast tvärtom" som LEFT JOIN.