[英]Join and have child table go into new columns on the parent table
我想知道這是否可行; 為了能夠有兩個表然后將它們聯接在一起,但在子表上具有名稱(或我選擇的任何字段),請進入父表,但在新列中
假設我的表1是“站點”。 它指定某些程序的站點。
表2是與會者,它記錄了當天在現場的人員。
+--------+--------------------------+-------------+-------+-------+------------+
| p2p_id | address | city | state | zip | date |
+--------+--------------------------+-------------+-------+-------+------------+
| 44 | 435 S | Los Angeles | CA | 90048 | 2014-05-13 |
| 45 | 1641 whatever Ave | Santa Ana | CA | 92704 | 2014-05-16 |
| 46 | 1710 reterrr St | Denver | CO | 80202 | 2014-07-10 |
| 47 | 6401 fdgdfdffffAve | Raleigh | NC | 27617 | 2014-07-16 |
| 48 | East dfgdfgdf Street | San Antonio | TX | 76107 | 2014-05-13 |
| 126 | 3100 fgdfgffgf | Fort Worth | TX | 76107 | 2014-05-14 |
| 127 | 1001 dfgdfgdffff | Houston | TX | 77002 | 2014-05-20 |
| 128 | 303 fdgdfgfgfgf | Atlanta | GA | 30308 | 2014-05-22 |
| 129 | 2525 W End Ave | Nashville | TN | 37203 | 2014-05-22 |
| 13 | 2041 S xzcdfdf | Anaheim | CA | 92802 | 2014-05-28 |
+--------+--------------------------+-------------+-------+-------+------------+
然后我們有“參加”表或表2
+------------+-------------+--------+
| first_name | last_name | p2p_id |
+------------+-------------+--------+
|bara | Edgar | 44
| | Estelle | 44
|chi | NG | 44
|nhar | Poon | 44
|ie | Byrd | 48
|nie | Gilet | 48
|nie | Hawley | 48
|helle | Hewlett | 48
|orah | Siler | 48
|hy | Sommerville | 48
+------------+-------------+--------+
p2p_id是“站點”表上的主鍵,而p2p_id是“參與者”表上的外鍵。
問題是我可以參加嗎
SELECT * FROM site s
JOIN attend a
ON s.p2p_id=a.p2p_id
+--------+--------------------------+-------------+-------+-------+------------+ ------------+-------------+--------+
| p2p_id | address | city | state | zip | date | first_name | last_name | p2p_id |
+--------+--------------------------+-------------+-------+-------+------------+ ------------+-------------+--------+
| 44 | 435 S | Los Angeles | CA | 90048 | 2014-05-13 | bara | Edgar | 44
| 44 | 435 S | Los Angeles | CA | 90048 | 2014-05-13 | | Estelle | 44
| 44 | 435 S | Los Angeles | CA | 90048 | 2014-05-13 | chi | NG | 44
| 44 | 435 S | Los Angeles | CA | 90048 | 2014-05-13 | nhar | Poon | 44
| 44 | 435 S | Los Angeles | CA | 90048 | 2014-05-13 | ie | Byrd | 48
| 48 | East dfgdfgdf Street | San Antonio | TX | 76107 | 2014-05-13 | nie | Gilet | 48
| 48 | East dfgdfgdf Street | San Antonio | TX | 76107 | 2014-05-13 | helle | Hewlett | 48
| 48 | East dfgdfgdf Street | San Antonio | TX | 76107 | 2014-05-13 | orah | Siler | 48
| 48 | East dfgdfgdf Street | San Antonio | TX | 76107 | 2014-05-13 | hy | Sommerville | 48
但是,不是彈出同一站點的多行,而是SQL(MySQL)可以將其以這種格式顯示嗎?
+--------+--------------------------+-------------+-------+-------+------------+ ------------+-------------+ ------------+-------------+------------+-------------+
| p2p_id | address | city | state | zip | date | first_name | last_name | first_name | last_name | first_name | last_name |
+--------+--------------------------+-------------+-------+-------+------------+ ------------+-------------+ ------------+-------------+------------+-------------+
| 44 | 435 S | Los Angeles | CA | 90048 | 2014-05-13 | Barb | Edgar | | Estelle | Chi | Ngu |
| 48 | East dfgdfgdf Street | San Antonio | TX | 76107 | 2014-05-13 | Helle | Hewlett | Sarah | Siler | Barbara | Walters |
而且,如果您想知道為什么我不只是在父表中使用這些名稱創建新列...那么我不想以這種方式存儲數據,但是公司中的其他一些人需要我在其中導出數據該格式。
謝謝!!
據我所知,沒有一些瘋狂的臨時表是不可能的。 我認為您最好的辦法是在使用group_concat函數后,通過一些編程來處理結果:
SELECT a.p2p_id, a.address,a.city, a.state,a.zip, a.date, group_concat(concat(first_name,' ', last_name)) as name
FROM site s
JOIN attend a
ON s.p2p_id=a.p2p_id
group by a.p2p_id, a.address,a.city, a.state,a.zip, a.date,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.