Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 1 Dołączył: 25.04.2009 Ostrzeżenie: (0%)
|
Nie mogę sobie poradzić z prostą rzeczą, głupią relacją 1:1.
Rozwiązanie znałazem w 2 zapytaniach, ale coś czuje że można to zrobić w lepiej. Mam 2 tabele:
Chce pobrać wszystkie szufladki i typ prezentu który się tam znajduje. Ten post edytował tadeurz 11.06.2013, 23:43:34 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 1 Dołączył: 25.04.2009 Ostrzeżenie: (0%)
|
Nawet nie muszę zaglądać do manuala.
JOIN LEFT z 2 upośledzeniami będzie wyglądało tak:
Trudno to nazwać problemami raczej upośledzenia mySQL (IMG:style_emoticons/default/biggrin.gif) 1. Przy złączeniu trzeba wypisać pola 0-100. Zamienienie tego na SELECT ? WHERE id IN (SELECT? ) nic nie da bo pola i tak trzeba będzie wypisać (w klauzuli IN będziemy chcieli wszystkie pola BOXów oprócz id(PRIMARY) a nie da się tego zrobić inaczej niż wypisać). Przy 2 SELECT używam pętli, więc na jedno wychodzi. 2.Tabele wynikowa będzie cholernie wielka. Napisze kilka przykładowych WIERSZÓW: 1. (ID) _ (ID_GIFT_1) ? (ID_GIFT_2) _ (ID_GIFT_3) - ... - (ID_GIFT_98) _ (ID_GIFT_99) _ (ID_GIFT_100) _ (TYP_GIFT_1) 2. (ID) _ (ID_GIFT_1) ? (ID_GIFT_2) _ (ID_GIFT_3) - ... - (ID_GIFT_98) _ (ID_GIFT_99) _ (ID_GIFT_100) _ (TYP_GIFT_2) 3. (ID) _ (ID_GIFT_1) ? (ID_GIFT_2) _ (ID_GIFT_3) - ... - (ID_GIFT_98) _ (ID_GIFT_99) _ (ID_GIFT_100) _ (TYP_GIFT_3) .... 99. (ID) _ (ID_GIFT_1) _ (ID_GIFT_2) _ (ID_GIFT_3) - ... - (ID_GIFT_98) _ (ID_GIFT_99) _ (ID_GIFT_100) _ (TYP_GIFT_99) 100. (ID) _ (ID_GIFT_1) _ (ID_GIFT_2) _ (ID_GIFT_3) - ... - (ID_GIFT_98) _ (ID_GIFT_99) _ (ID_GIFT_100) _ (TYP_GIFT_100) JOIN LEFT ? Może tutaj jest błąd struktury bazy danych, którą trzeba inaczej zaprojektować i wtedy cały problem zniknie. Mam użytkowników którzy mają plansze 10x10 -> na niej chowają prezenty. Pozostali gracze strzelają w pole odkrywając prezent który się tam skrywa. Zrobienie z tego 1 tabeli w której jest pole i od razu GIFT jest rozwiązaniem na siłę. Każdy strzelony GIFT jest zapisywany, wiec musiałbym po trafieniu go, przenieś do nowej tabeli. Ten post edytował tadeurz 12.06.2013, 13:29:05 |
|
|
|
tadeurz [MySQL] Relacja 1:1 11.06.2013, 23:41:54
nospor manual mysql -> LEFT JOIN 12.06.2013, 08:19:49
mmmmmmm Masz chorą strukturę.
5 pól:
-id,
-id_gift,
- nume... 12.06.2013, 14:09:24
tadeurz No właśnie struktura jest dobra.
Powyżej oczywiści... 12.06.2013, 15:25:09
bpskiba Jest to wzorcowy przykład z cyklu "jak nie bu... 12.06.2013, 15:34:38
tadeurz Przypuszczam, że niechcący pomyliłeś się w zapisie... 12.06.2013, 16:36:52 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 15:15 |