karthesisches produkt speichern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • karthesisches produkt speichern

    hallo zusammen,

    aus testzwecken möchte ich mir relativ schnell eine relativ große Tabelle erzeugen.
    dazu möchte ich das kart. produkt aus tab1 und tab2 einfach in tab3 speichern:
    tab1(userid, name, isadmin)
    tab2(buchid,titel,autor)
    tab3(ausleihid,userid,buchid)

    dazu würde ich gerne folgendes machen:
    insert into tab3 values (0,(select userid from tab1),(select buchid from tab2))

    logischerweise geht das nicht so richtig, da das result mehr als eine Zeile zurück gibt.
    wenn ich sonst subqueries verwende ( und ich mit Vektoren vergleichen will), kann ich ja zB Operatoren wie Any und All verwenden.

    das scheint aber hier nicht zu klappen, weiß einer warum, und wie ich das am besten lösen kann?

    danke
  • insert mit subselect

    Zwischenfrage: Du arbeitest mit MySQL, oder? Hier könnten sich andere DBMS leicht unterscheiden.

    Zu deiner Frage: Stell dir das Ergebnis des Selects doch einfach als fertigen Datensatz vor, den du importieren magst.

    INSERT INTO tab3 SELECT * FROM (SELECT userid FROM tab1) x,(SELECT buchid FROM tab2) y

    Nun willst du einen weiteren Wert - dann selektiere ihn

    Quellcode

    1. SELECT *,1 AS weitererWert FROM (SELECT userid FROM tab1) x,(SELECT buchid FROM tab2) y