Sql 从多个表中选择数据?

Sql 从多个表中选择数据?,sql,mysql,Sql,Mysql,我有3个表,3个字段都一样。我基本上想从每个表中选择信息 例如: userid = 1 我想从所有3个表中选择数据,其中userid=1 我目前正在使用: SELECT r.*, p.*, l.* FROM random r LEFT JOIN pandom p ON r.userid = p.userid LEFT JOIN landom l ON l.userid = r.userid WHERE r.userid = '

我有3个表,3个字段都一样。我基本上想从每个表中选择信息

例如:

userid = 1
我想从所有3个表中选择数据,其中
userid=1

我目前正在使用:

   SELECT r.*, 
          p.*, 
          l.*
     FROM random r
LEFT JOIN pandom p ON r.userid = p.userid
LEFT JOIN landom l ON l.userid = r.userid
    WHERE r.userid = '1'
    LIMIT 0, 30
但它似乎不起作用

SELECT * FROM `random`
         JOIN `pandom` USING (`userid`)
         JOIN `landom` USING (`userid`)
WHERE `userid`='1'
三个字段都一样

您的意思是希望所有3个表中的
都有相同的3个字段

   SELECT r.col1, r.col2, r.col3
     FROM random r
    WHERE r.userid = '1'
    LIMIT 0, 30
UNION ALL 
   SELECT p.pcol1, p.pcol_2, p.p3
     FROM pandom p
    WHERE p.userid = '1'
    LIMIT 0, 30
UNION ALL 
   SELECT l.l1, l.l2, l.l3
     FROM landom l
    WHERE l.userid = '1'
    LIMIT 0, 30
字段不必命名相同,但相同的类型需要排列在位置1、2和3

限制的工作方式是:

  • 它将尝试从
    random
    中获取30
  • 如果它已经有30张了,它甚至不会看其他两张表
  • 如果从
    random
    中得到的数据少于30个,它将尝试从
    pandom
    中得到30个,最后才从
    landom

什么是“似乎不起作用”呢?没有足够的信息给出有意义的答案。请发布所有表的模式、有关您尝试执行的操作的更多信息、预期结果是什么、实际结果是什么以及任何错误消息。如果使用PHP,请启用所有错误和警告。
   SELECT r.col1, r.col2, r.col3
     FROM random r
    WHERE r.userid = '1'
    LIMIT 0, 30
UNION ALL 
   SELECT p.pcol1, p.pcol_2, p.p3
     FROM pandom p
    WHERE p.userid = '1'
    LIMIT 0, 30
UNION ALL 
   SELECT l.l1, l.l2, l.l3
     FROM landom l
    WHERE l.userid = '1'
    LIMIT 0, 30