WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   En SQL fråga (https://www.wn.se/forum/showthread.php?t=28433)

klein 2008-04-07 12:01

Håller på och mecka lite med OsCommerce..

I OsComemrce har man en tabell som hetter products_to_categories , som man kan få ut products_id. Jag vill i en och samma fråga få ut innehållet ur databasen. Men får det inte att fungera riktigt? Skall man köra join eller?

Har försökt mig på med nedanstående fråga.. Som sagt, men ger inte önska resultat.

SELECT p.products_id,pd.products_id,p.products_model,pd.p roducts_name, pd.products_description, p2c.products_id,p2c.categories_id FROM products_to_categories p2c,products p,products_description pd WHERE p.products_id=p2c.products_id AND p2c.categories_id=198594

Magnus_A 2008-04-07 12:12

Citat:

Originally posted by klein@Apr 7 2008, 12:01
.... FROM products_to_categories p2c,products p,products_description pd ....
Det här ser inte bra ut, skriver jag utan att kunna oscommerce ett dugg. Men MySql - för det är väl det du kör - förväntar sig att du har komma mellan tabellerna i uppräkningen efter FROM, samt att alla tabeller som du refererar till är med.

Är det tabeller från flera olika databaser skriver man FROM databas0.tabell0, databas1.tabell1, databas2.tabell2, osv.

klein 2008-04-07 12:13

Citat:

Ursprungligen postat av Magnus_A
Citat:

Ursprungligen postat av klein
.... FROM products_to_categories p2c,products p,products_description pd ....

Det här ser inte bra ut, skriver jag utan att kunna oscommerce ett dugg. Men MySql - för det är väl det du kör - förväntar sig att du har komma mellan tabellerna i uppräkningen efter FROM, samt att alla tabeller som du refererar till är med.

Är det tabeller från flera olika databaser skriver man FROM databas0.tabell0, databas1.tabell1, databas2.tabell2, osv.

Jo, man kan väl skriva tabellnam hejsanhoppsan hp , där hp bli ett alias för tabellen eller är jag helt ute cyklar?

Det går t.e.x utmärkt och skriva select * from products ps where ps.products_id>1377382.

jonny 2008-04-07 12:32

Klein har ju komman mellan tabellerna, men använder alias.
Får du inte ut något alls? Inget felmeddelande?

Magnus_A 2008-04-07 12:58

Ser man på! där lärde man sig något nytt.

al'Thor 2008-04-07 13:04

Vad är det du vill ha för resultat, och hur skiljer det sig ifrån det resultatet du får av din SQL-fråga?

EmilIsberg 2008-04-07 14:38

Citat:

Originally posted by klein@Apr 7 2008, 12:01
Har försökt mig på med nedanstående fråga.. Som sagt, men ger inte önska resultat.

SELECT p.products_id,pd.products_id,p.products_model,pd.p roducts_name, pd.products_description, p2c.products_id,p2c.categories_id FROM products_to_categories p2c,products p,products_description pd WHERE p.products_id=p2c.products_id AND p2c.categories_id=198594

Låt mig strukturera kleins fråga lite för att få bättre överblick
Kod:

SELECT p.products_id, p.products_model,
        pd.products_id,pd.products_name, pd.products_description,
        p2c.products_id,p2c.categories_id
 FROM products_to_categories p2c,
      products p,
      products_description pd
 WHERE p.products_id=p2c.products_id
    AND p2c.categories_id=198594

Du verkar sakna fältet som joinar p (eller p2c) med pd.
Jag misstänker att du behöver en rad som ser ut något liknande AND p.product_id = pd.product_id.

Disclaimer dock att det var evigheter sedan jag på något sätt befattade med OSCommerce och att jag inte har någon aning om vad det är för fält som du borde joina på.

Ett tips är att skriva EXPLAIN framför frågan i phpmyadmin (eller den konsoll du använder dig av):
http://dev.mysql.com/doc/refman/5.0/en/explain.html
http://dev.mysql.com/doc/refman/5.0/...g-explain.html

Taras 2008-04-07 15:03

Testa med nåt sånt här:
Kod:

SELECT p.products_id, p.products_model, pd.products_id,pd.products_name, pd.products_description, p2c.products_id, p2c.categories_id
FROM products_to_categories p2c left join products p on p2c.products_id=p.products_id left join products_description pd on pd.products_id=p.products_id
WHERE p2c.categories_id=72

Edit: Är det någon speciell information du vill ha ut? Kanske först borde frågat vad du egentligen vill ha ut för information av queryn :)
Detta hämtar ju informationen om alla de produkter som ligger i kategorin med id=72

klein 2008-04-07 17:11

Citat:

Originally posted by Taras@Apr 7 2008, 15:03
Testa med nåt sånt här:
Kod:

SELECT p.products_id, p.products_model, pd.products_id,pd.products_name, pd.products_description, p2c.products_id, p2c.categories_id
FROM products_to_categories p2c left join products p on p2c.products_id=p.products_id left join products_description pd on pd.products_id=p.products_id
WHERE p2c.categories_id=72

Edit: Är det någon speciell information du vill ha ut? Kanske först borde frågat vad du egentligen vill ha ut för information av queryn :)
Detta hämtar ju informationen om alla de produkter som ligger i kategorin med id=72

Jag vill ha ut alla artiklar som stämmer överens med p2c.categories_id=id_nummer

ID nummren till dom artiklarna i en tabell som hetter products_to_categories.

Om man gör en select på tabellenproducts_to_categories, så få fram id nummret på alla artiklar som skall lista , men istället för göra 2 frågor vill jag göra en fråga av det. ...

klein 2008-04-07 18:56

Citat:

Originally posted by Taras@Apr 7 2008, 15:03
Testa med nåt sånt här:
Kod:

SELECT p.products_id, p.products_model, pd.products_id,pd.products_name, pd.products_description, p2c.products_id, p2c.categories_id
FROM products_to_categories p2c left join products p on p2c.products_id=p.products_id left join products_description pd on pd.products_id=p.products_id
WHERE p2c.categories_id=72

Edit: Är det någon speciell information du vill ha ut? Kanske först borde frågat vad du egentligen vill ha ut för information av queryn :)
Detta hämtar ju informationen om alla de produkter som ligger i kategorin med id=72

Men din upplänkning av tabellerna kan gav önskat resultat..:-)


Alla tider är GMT +2. Klockan är nu 03:17.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson