• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapytanie do 2 tabel

0 głosów
304 wizyt
pytanie zadane 1 lutego 2018 w SQL, bazy danych przez Kshyhoo Użytkownik (780 p.)
edycja 1 lutego 2018 przez Kshyhoo

Borykam się z pewnym problemem. Mam dwie tabele i nie mogę osiągnąć zadowalającego z efektu. Tabele:

kolor:
+------------+----------------+
| id_kol     | int(11)        | // ID
| ral        | int(4)         | // ID koloru
| k_hex      | tinytext       | 
| k_rgb      | tinytext       |
+------------+----------------+
alterna:
+------------+----------------+
| id_alt     | int(11)        | // ID
| color      | int(4)         | // ID koloru z poprzedniej tabeli
| alternativ | tinytext       | // wartość
| a_range    | enum('0', '1') | // 0 - NCS, 1 - Pantone
| a_rating   | int(1)         | // wartość
+------------+----------------+

Chciałbym uzyskać taki efekt:

+---------+-------------+
|     ral |  1111       | // kolor z pierwszej tabeli
|     ncs | 2020-Y **   | // alternatywny z drugiej tabeli (a_range=0, a_rating=2)
|         | 2020-G90Y * | // alternatywny z drugiej tabeli (a_range=0, a_rating=1)
| pantone | 5855 C ***  | // alternatywny z drugiej tabeli (a_range=1, a_rating=3)
|         | 4535 C **   | // alternatywny z drugiej tabeli (a_range=1, a_rating=2)
|         | 7502 C *    | // alternatywny z drugiej tabeli (a_range=1, a_rating=1)
+---------+-------------+

Moje zapytanie do bani:

SELECT * 
FROM kolor 
LEFT JOIN alterna AS c1 ON kolor.id_kol=c1.color AND c1.a_range='0'
LEFT JOIN alterna AS c2 ON kolor.id_kol=c2.color AND c2.a_range='1'

Nie umiem pozbyć się duplikatów...

1 odpowiedź

0 głosów
odpowiedź 1 lutego 2018 przez Comandeer Guru (609,000 p.)

A próbowałeś ze słowem kluczowym DISTINCT?

komentarz 1 lutego 2018 przez Kshyhoo Użytkownik (780 p.)
Fajnie, ale co mi to da? Nie wiem, jak mam zrobić porządne złączenie...
komentarz 1 lutego 2018 przez Kshyhoo Użytkownik (780 p.)
Już kumam... Ale użyte w moim zapytaniu powiela rekordy.

Podobne pytania

0 głosów
1 odpowiedź 288 wizyt
pytanie zadane 16 stycznia 2018 w SQL, bazy danych przez ThreeG Nowicjusz (170 p.)
0 głosów
1 odpowiedź 680 wizyt
0 głosów
2 odpowiedzi 723 wizyt
pytanie zadane 11 kwietnia 2018 w SQL, bazy danych przez Anoonymous Obywatel (1,560 p.)

93,778 zapytań

142,737 odpowiedzi

323,389 komentarzy

63,382 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...