Nasıl JOINed tablo ile bir sorgudan tüm alan değerlerini alabilirim?

3 Cevap php

Ben bu temel sorgusu vardır:

SELECT d.description, o.code FROM order_positions AS o
LEFT JOIN article_descriptions AS d ON (o.article_id = d.article_id)
WHERE o.order_id = 1

ve ben MDB2 from PEAR çalıştırmak ve dönüş değerleri okumak için kullanıyorum.

Ama nedense sonuç dizisi her sonuç dizi bu gibi görünüyor only!, Yani order_positions tablodan alanları içerir

row[code] = 'abc123'

Ben isterken bu gibi bakmak

row[description] = 'my description'
row[code] = 'abc123'

Zaten şu çalıştı:

  • Alanların sırasını Vary, yani code, sonra description.
  • Katıldı tabloların sırasını Vary.
  • Used full table isims instead of aliases.
  • Kullanılan "MySQL katılmak" yerine (SELECT FROM table1, table2 WHERE table1.id = table2.id)
  • Olan ve olmayan kullanılan takma adlar AS.

Diğer bazı gerçekler:

  • MySQL Query Browser Bu sorguyu yürüttükten çalışıyor, tüm alanlar döndürülür.
  • order_positions tablo ne olursa olsun, tercih edilecek gibi görünüyor. Ek tablolarla katılmadan zaman ben hala sadece bu tablodan alanları olsun.

3 Cevap

Tamam, ben neden bulundu:

Fields ile NULL values are not added to the array. In my test scenario description boş aslında olduğunu ve bu nedenle dizide mevcut değildi.

Ben hala bu (utanç verici) bir soru, sadece durumda başkası gelecekte bu sorunu var tutacağız.

Facepalm

Bu çalışması gerekir:

SELECT d.description, o.code 
FROM order_positions o, article_descriptions d 
WHERE o.order_id = 1 AND d.article_id = o.article_id