2016-04-28 9 views
-1

Ich habe 2 Tabellen.Unterabfrage - MySQL - PHP

table2 Struktur:

name 
    os 
    count 

tabelle1 Struktur:

name 

Beispiele für table2: Fred Android 50 Tom iOS 3 Tom iOS 3 Fred Android 1 Fred Android 1 James iOS 20

Tabelle1 enthält eine Liste von Namen (eindeutig).

Meine aktuelle Abfrage (gespeichert in PHP-Variablen $ SQLX) ist

$sqlx = "SELECT COUNT(*) AS numberOfRows FROM table2 where name = 'Fred' AND count < '6' AND os = 'iOS' GROUP BY name"; 

Wie kann ich eine Unterabfrage machen, so dass ich zu ‚Fred‘ nicht geben, so dass der Name von table1 ausgewählt ist?

+0

Meinten Sie für alle Namen in Tabelle 1 – geeksal

Antwort

2

Das Hinzufügen von IN bedeutet, dass Sie nach allen Elementen in dieser Liste suchen. Mit der zweiten Select-Abfrage ziehen Sie nun alle Namen aus table1. Hier können Sie bei Bedarf weitere Bedingungen aufstellen.

$sqlx = "SELECT COUNT(*) AS numberOfRows FROM table2 WHERE name IN (SELECT name FROM table1) AND count < '6' AND os = 'iOS' GROUP BY name";