2016-04-05 13 views
-1

MySQL sorgu olarak subqueries:Boyutlu MySQL sonuç - diziler

SELECT 
    seats, 
    (SELECT tires, bumpers FROM exterior) AS stuff 
FROM 
    interior 

bekliyordum sonucu:

0 => [ 
    'seats' => 'comfort', 
    'stuff' => [ 
     0 => [ 
      'tires' => 'winter', 
      'bumpers' => 'front' 
     ], 
     1 => [ 
      'tires' => 'summer', 
      'bumpers' => 'back' 
     ], 
     ... 
    ] 
], 
1 => ... 

Ancak bu işe yaramadı. Hata iletisi: İşlenen 1 sütun içermelidir.

Alt sorgu sonuçları diziler olarak döndürmek mümkün mü? Ya da bu şekilde gruplamak sadece ör. PHP? Teşekkürler. Ben onlar henüz anahtar değeri yok biliyoruz

SELECT seats, 
(SELECT CONCAT_WS(',',tires, bumpers) FROM exterior) AS stuff 
FROM interior 

// Where $array would be the result of the query 

function stringtoarray($string) { 
    return explode(',',$string); 
} 

for($i=0;!empty($array);$i++) { 
    $array[''stuff'] = stringtoarray($array[''stuff']); 
} 

ama siz de bu yöntemle dahilinde Bunu düzeltmek gerekir:

+0

kullanın. SQL'iniz, DBMS için anlam ifade etmez. Beklediğiniz şeylerin bir örneğini sunduğunuzdan, SQL'in nasıl görünmesi gerektiği konusunda bazı tahminler yapabiliriz, ancak örnek çıktı, cevapladığı kadar çok soru ortaya çıkarır. Belki de çıktıya neden olmasını istediğiniz tablolarda hangi verileri bize gösterebilirsiniz. – symcbean

cevap

0

bunun için bir çözüm aşağıdaki olurdu. (SELECT tires, bumpers FROM exterior) AS stuff senin alt sorguda kullanım limiti Ya veya "& "iç" arasında bir ilişki var olduğu bana bildirin: Bu gibi birden satır diğer ad olamaz böylece "dış" tablosundaki gibi

0

, çok sayıda satırla dış "tablo. Herhangi bir ilişki varsa, join

+0

Bu, sorgunun Osvaldas'ın beklediği gibi çalışmasını engelleyeceği halde, hata iletisinin nedeni değil - birden fazla veri sütunu döndürmek için ayrıştırma sırasında ayrıştırma sırasında hata oluşuyor. – symcbean