看起來像一個蛋糕走路,因爲共同列的東西,但我看了,我看了,無法找到答案的任何地方。人們可能會嘗試做類似的事情,但每個人總是需要它與我需要的稍有不同。反正這裏去...我如何從兩個表中的多列中選擇數據,其中有一個共同列?
工作表
+----+--------+----+----+----+
| id | userid | i1 | i2 | i3 |
+----+--------+----+----+----+
| 1 | 1 | a | k | t |
| 2 | 1 | b | l | u |
| 3 | 1 | c | m | v |
| 4 | 2 | d | n | w |
| 5 | 2 | f | o | x |
| 6 | 2 | g | p | y |
| 7 | 3 | h | q | z |
| 8 | 3 | i | r | a |
| 9 | 4 | j | s | b |
+----+--------+----+----+----+
USER_TABLE表
+--------+----+----+----+
| userid | fn | ln | i4 |
+--------+----+----+----+
| 1 | a | b | w |
| 2 | c | d | x |
| 3 | e | f | y |
| 4 | g | h | z |
+--------+----+----+----+
我想從另一個表中選擇一個表多列和多列,和列別量沒有相同的數額。所以如果我從jobs表中選擇id,i1,i2和i3,並從user_table表中選擇fn,ln和i4,那麼這意味着我從job_table中選擇4條信息,並從user_table中選擇3條信息表。
所以比方說,我想選擇特定的作業,並顯示該作業的信息,也是我想顯示屬於該作業的用戶的信息,那麼它可能去這樣的事情...
作業1:
ID:1,I1:一,I2:K,I3:噸,FN:一,LN:b,6-14:瓦特
作業4這將是:
id:4,i1:d,i2:n,i3:w,fn:c,ln:d,i4:x
作業表和user_table表具有userid的公共列。那麼如何使用這個公共列來編寫我的查詢來完成上述操作?
我用SELECT和WHERE和AND和JOIN和UNION和AS以及GROUP和BY嘗試了各種各樣的東西,並將表名與列名分開編寫,並將表名和列名一起寫入。我只是找不到寫這個查詢的正確方法。
在下面的這些示例中不起作用我只是試圖從user_table表中選擇一件東西,而不是來自作業表的所有內容都不是userid,但我需要能夠從多個東西中選擇多個東西第二張桌子如果需要的話。所以我想從第一個表中選擇一切,並從第二個表中選擇一些特定的東西。
不起作用:
SELECT id, i1, i2, i3, i4 FROM jobs, user_table WHERE jobs.id = $id GROUP BY id
不起作用:
SELECT * from jobs where id = $id UNION SELECT i4 from user_table where userid = $userid
請閱讀有關JOIN的SQL教程。 – Barmar
'SELECT jobs。*,user_table。* FROM jobs LEFT JOIN user_table ON jobs.user_id = user_table.userid' - 或INNER JOIN,取決於您對結果的要求(LEFT JOIN將顯示所有作業,無論用戶標識是否匹配,INNER JOIN將強制執行兩者之間的匹配) –
這一個也不會從第二個表中選擇正確的數據。除非我沒有使我的變量正確?查詢後如何使不同表中的所有列的變量?喜歡這個? $ row = mysql_fetch_array($ result);如果($ row){$ date = $ row ['date']; $ imgurl = $ row ['img_url']; } ---日期一來自jobs表,img one來自user_table。當我運行整個事情時,img對於所有作業都是相同的,並且不會根據與作業相關的用戶而改變。 – leoarce