Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Łączenie tabel
arkos
post 8.10.2011, 08:17:59
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 24.12.2009

Ostrzeżenie: (20%)
X----


Witajcie!
Mam sobie, np. dwie tabele:
  1. CREATE TABLE IF NOT EXISTS `users` (
  2. `id` int(100) NOT NULL AUTO_INCREMENT,
  3. `login` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  4. `pass` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  5. PRIMARY KEY (`id`),
  6. UNIQUE KEY `login` (`login`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1 ;
  8.  
  9.  
  10. CREATE TABLE IF NOT EXISTS `orders` (
  11. `id` int(100) NOT NULL AUTO_INCREMENT,
  12. `id_user` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  13. `date_register` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  14. `date_end` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  15. `cost` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  16. PRIMARY KEY (`id`)
  17. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1 ;

W tabeli orders kolumnie id_user pojawia się id użytkownika z tabeli users.
Chciałbym uzyskać takie coś, iż jeżeli użytkownik o tym ID nie istnieje to również w tabeli orders nie ma wpisu.
Jak takie coś można uzyskać?

PS. Czy struktura jest dobrze napisana, pod względem optymalności, jeżeli nie co zmienić?

Pozdrawiam.

Ten post edytował arkos 8.10.2011, 08:19:46
Go to the top of the page
+Quote Post
wookieb
post 8.10.2011, 08:56:14
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://dev.mysql.com/doc/refman/5.5/en/inn...onstraints.html

Warto o nich poczytać szerzej.


--------------------
Go to the top of the page
+Quote Post
arkos
post 8.10.2011, 10:05:35
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 24.12.2009

Ostrzeżenie: (20%)
X----


I tego się obawiałem. W manualu wiem, że to jest...
Ale ten manual z MySQL jest tak zjeb*** że gorszego chyba niema.

Jeżeli mógłby ktoś podać przykłady tutaj.
Go to the top of the page
+Quote Post
Weles
post 8.10.2011, 10:18:10
Post #4





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 7.07.2011

Ostrzeżenie: (0%)
-----


@UP ma racje, ten Manual z MySql'em jest tak ch*jowy że szkoda gadać.
Kiedyś pół godziny czytałem na nim 1 artykuł, i nie dowiedziałem się dosłownie NICZEGO.

Co do twojego problemu, to nie wystarczy ci przypadkiem

  1. if(isset($zapytanie)) == 1 {
  2. tresc jezeli jest juz dane zapytanie
  3. } else {
  4. tresc jezeli nie ma danego zapytania
  5. }

?

@EDIT:
Nie zauważyłem że prefix to tylko MySql, sorrki ^^

Ten post edytował Weles 8.10.2011, 10:19:40
Go to the top of the page
+Quote Post
Crozin
post 8.10.2011, 10:58:03
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@arkos, @Weles: Zdecydujcie się może czy klniecie czy nie.

W pierwszym zdaniu masz InnoDB supports foreign key constraints.. Nie wiesz co to jest InnoDB? Użyj Google'a. Nie wiesz co to są klucze obce? Na prawdę nie trzeba się wysilać by znaleźć coś o tym.

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:51