HTML tabloya MySQL veri görüntüleme (açıkça açıklanmıştır)

1 Cevap php

Bu yazı açıklandığı gibi Tamam, ben bir uygulama var: http://stackoverflow.com/questions/1623105/good-database-structure-for-a-new-web-app

Ben mümkün olduğu kadar benim soru kadar net yapmak için bir senaryo hazırladık:

Users table:
    +----------+-----------------+
    | user_id  | email           |
    +----------+-----------------+
    | user_1   | user1@email.com |
    | user_2   | user2@email.com |
    | user_3   | user3@email.com |
    | user_4   | user4@email.com |
    +----------+-----------------+

* Bildirim user_3 ve user_4 kendi etki yok

Domains table:
    +-----------+------------+
    | owner_id  | domain     |
    +-----------+------------+
    | user_1    | dom-1.com  | 
    | user_1    | dom-2.com  |
    | user_2    | dom-3.com  |
    +------------------------+

Aşağıdaki tablo, sahibi olan bir etki alanı ve kullanıcı kim olduğunu gösterir:

User-Domain table:
    +----------+-------------+-----------+
    | user_id  | domain      | owner_id  |
    +------------------------+-----------+
    | user_1   | dom-1.com   | user_1    |
    | user_1   | dom-2.com   | user_1    |
    | user_2   | dom-3.com   | user_2    |
    | user_3   | dom-1.com   | user_1    |
    | user_3   | dom-2.com   | user_1    |
    | user_4   | dom-1.com   | user_1    |
    +------------------------+-----------+

My question is, how do I output a list of each user who is using a given user's domain, in the following format?

(Örneğin aşağıdaki bir HTML tablosu):

List of users who are using User_1's domains (HTML TABLE):
        +-------------------+-----------------------+
        | Email             | domains               |
        +-------------------+-----------------------+
        | user3@email.com   | dom-1.com, dom-2.com  |
        | user4@email.com   | dom-1.com             |
        +-------------------+-----------------------+

1 Cevap

Bu sorgu size sonuç vermelidir. Ondan bir HTML tablosu gösteriliyor yeterince kolay olmalı.

SELECT
   u.email,
   group_concat(d.domain SEPARATOR ', ')
FROM
   domains d
   JOIN user_domain ud ON d.domain=ud.domain AND d.owner_id=ud.owner_id AND d.owner_id!=ud.user_id
   JOIN users u on ud.user_id=u.user_id
WHERE d.owner_id='user_1'
GROUP BY u.email

Sen temelde bu user_ids için 'user_1' ait bütün alanları, bu alanlar için sonra tüm user_ids, ve sonra tüm kullanıcıları seçin. Bundan sonra, size grup kullanıcının e-posta ile sonuçları ve kullanıcı kullanarak tüm etki alanı adlarını sıralayabilirsiniz.