ich hab da ein kleines Problem mit SQLAlchemy, scheinbar ist mein query zwar korrekt, nur komme ich nicht ans result ran.
In phpmyadmin sieht die Abfrage wie folgt aus
Code: Alles auswählen
SELECT wp_woocommerce_order_itemmeta. * , wp_woocommerce_order_items. *
FROM wp_woocommerce_order_items
JOIN wp_woocommerce_order_itemmeta ON wp_woocommerce_order_itemmeta.order_item_id = wp_woocommerce_order_items.order_item_id
WHERE order_id = "302"
AND meta_key LIKE '_line_total'
ORDER BY wp_woocommerce_order_itemmeta.meta_key
LIMIT 0 , 30
Code: Alles auswählen
class woo_order_items(Base):
__tablename__ ='wp_woocommerce_order_items'
order_item_id = Column(Integer, primary_key=True)
order_item_name = Column(String)
order_item_type = Column(String)
order_id = Column(String)
class woo_order_meta(Base):
__tablename__ = 'wp_woocommerce_order_itemmeta'
meta_id = Column(Integer, primary_key=True)
order_item_id = Column(String, ForeignKey("wp_woocommerce_order_items.order_item_id"))
meta_key = Column(String)
meta_value = Column(String)
jtable = s.query(woo_order_items).join(woo_order_meta, \
woo_order_items.order_item_id ==woo_order_meta.order_item_id).filter\
(and_(woo_order_items.order_id == ordernr),(woo_order_meta.meta_key == '_line_total')).all()
for x in jtable:
print(x)
<__main__.woo_order_items object at 0x7f9f41413d50>
<__main__.woo_order_items object at 0x7f9f41413dd0>
<__main__.woo_order_items object at 0x7f9f41413e50>
<__main__.woo_order_items object at 0x7f9f41413ed0>
<__main__.woo_order_items object at 0x7f9f41413f90>
Aber halt nicht x.meta_id oder die werte andere columns
Ich hab die letzte Stunde alles möglich versucht um an die Ergebnisse des results zu kommen, aber ohne jeden Erfolg.
Die Menge der rows scheint bis jetzt mit denen die ich von phpmyadmin zurückbekomme übereinzustimmen, ebenfalls wenn ich sqlalchemy mit echo=True benutzte sieht der query in Ordnung aus. Ich würde nur echt gerne an die result Werte rankommen.
Hoffe es ist einigermaßen klar was ich meine
NACHTRAG:
Wenn ich aus dem print(x) ein print(x.__table__.columns) mache bekomme ich als result
['wp_woocommerce_order_items.order_item_id', 'wp_woocommerce_order_items.order_item_name', 'wp_woocommerce_order_items.order_item_type', 'wp_woocommerce_order_items.order_id']
Im phpmyadmin bekomme ich allerdings viel mehr infos:
meta_id order_item_id meta_key meta_value order_item_id order_item_name order_item_type order_id